Frame?f?=?new?Frame();
成都創(chuàng)新互聯(lián)為客戶(hù)提供專(zhuān)業(yè)的網(wǎng)站建設(shè)、做網(wǎng)站、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開(kāi)發(fā). 服務(wù)項(xiàng)目涵蓋了網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站程序開(kāi)發(fā)、WEB系統(tǒng)開(kāi)發(fā)、微信二次開(kāi)發(fā)、移動(dòng)網(wǎng)站建設(shè)等網(wǎng)站方面業(yè)務(wù)。
f.setTitle("設(shè)置圖片");
f.setSize(400,?300);
/*讀取要顯示的圖片*/
final?Image?img?=?ImageIO.read(new?File("D:/1.jpg"));
/*重寫(xiě)panel的繪制方法*/
Panel?panel?=?new?Panel(){
private?static?final?long?serialVersionUID?=?1L;
@Override
public?void?paint(Graphics?g)?{
super.paint(g);
g.drawImage(img,?0,?0,?400,?300,?null);
}
};
/*添加panel標(biāo)簽*/
f.add(panel);
/*添加關(guān)閉操作監(jiān)聽(tīng)*/
f.addWindowListener(new?WindowAdapter()?{
@Override
public?void?windowClosing(WindowEvent?e)?{
System.exit(0);
}
});
/*顯示窗體*/
f.setVisible(true);
可以通過(guò)重寫(xiě)標(biāo)簽的繪制方法來(lái)實(shí)現(xiàn)
在學(xué)習(xí)Swing 圖形化界面的時(shí)候,會(huì)出現(xiàn)標(biāo)簽組件---JLabel,而在容器JFrame當(dāng)中進(jìn)行設(shè)置的時(shí)候,可以添加圖片,此圖片可以充當(dāng)標(biāo)簽,那么我們還需要一個(gè)接口,那就是Icon接口,專(zhuān)門(mén)來(lái)接收?qǐng)D片的!
現(xiàn)在通過(guò)步驟來(lái)解決如何將圖片添加到標(biāo)簽組件中!
第一步: 創(chuàng)建JFrame容器,并設(shè)置標(biāo)題
第二步: 定義字符串類(lèi)型的圖片路徑,目的為ImageIcon類(lèi)傳參
第三步:實(shí)例化Icon接口對(duì)象,通過(guò)子類(lèi)ImageIcon來(lái)完成。
第四步:創(chuàng)建JLabel對(duì)象,傳入Icon對(duì)象和設(shè)置在容器當(dāng)中的位置。
第五步: 設(shè)置容器的大小、背景顏色、并顯示出來(lái)!
具體代碼如下:
public class JLabelDemo {
public static void main(String[] args) {
//實(shí)例化JFrame對(duì)象,并設(shè)置標(biāo)題
JFrame f = new JFrame("我的窗體") ;
//定義圖片路徑
String picPath = "d:" + File.separator + "haha.gif" ;
//實(shí)例化Icon對(duì)象,并傳入圖片路徑
Icon icon = new ImageIcon(picPath) ;
// 實(shí)例化標(biāo)簽對(duì)象,傳入Icon對(duì)象,并設(shè)定位置。
JLabel lab = new JLabel(icon,JLabel.CENTER) ;
lab.setBackground(Color.YELLOW) ;//設(shè)置窗體的背景顏色
f.add(lab) ; //將組件件入到JFrame面板之中
f.setSize(600,360) ; //設(shè)置窗體的大小;
f.setLocation(300,200) ; //設(shè)置窗體出現(xiàn)的位置
f.setVisible(true) ; //讓窗體顯示出來(lái)。
}
}
ImageIcon image = new ImageIcon("images/bg5.png");
JLabel la3 = new JLabel(image);
// System.out.println(this.getWidth()+ "gg");
la3.setBounds(0, 0, 881,683);//添加圖片,設(shè)置圖片大小為窗口的大小。
this.getLayeredPane().add(la3,new Integer(Integer.MIN_VALUE)); //將JLable加入到面板容器的最高層
getContentPane().add(la3);
這個(gè)是我的代碼,添加背景圖片的
估計(jì)關(guān)鍵在getContentPane().add(la3);這一句上,你看看是不是沒(méi)添加到面板
或者setBounds是不是設(shè)置的 長(zhǎng)寬是不是 0
this.getLayeredPane().add(la3,new Integer(Integer.MIN_VALUE));
這句話可以沒(méi)有的,這句話作用是設(shè)置背景圖片
可以利用標(biāo)簽組件來(lái)設(shè)置。
具體方法如下:
利用標(biāo)簽組件來(lái)設(shè)置,具體代碼如下:
JPanelpnlMain=new JPanel(); //創(chuàng)建面板pnlMain。
getContentPane().add(pnlMain); //將pnlMain設(shè)置為主面板。
Iconi=new ImageIcon("背景.jpg"); /*用源圖片“背景.jpg”構(gòu)造一個(gè)ImageIcon對(duì)象i,需要注意如果圖片的路徑使用的是相對(duì)路徑,則圖片文件必須放在類(lèi)文件所在文件夾或項(xiàng)目的根文件夾中,否則圖片的路徑必須用絕對(duì)路徑。*/
JLabellblLogo = new JLabel(i); //用指定的圖片構(gòu)造標(biāo)簽對(duì)象lb
this.getLayeredPane().add(lb, new Integer(Integer.MIN_VALUE));
//把標(biāo)簽放在第二層JlayerPane上。
lb.setBounds(0, 0,ii.getIconWidth(),i.getIconHeight());
//設(shè)置標(biāo)簽的尺寸,即背景圖象的大小。
getConentPane().setOpaque(false); /*把內(nèi)容面板設(shè)置為透明,這樣整個(gè)框架的背景就不再是內(nèi)容面板的背景色,而是第二層中標(biāo)簽的圖像。*/
pnlMain.add(lb); //將標(biāo)簽添加到主面板pnlMain中。