1)文件要有后綴名
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到永泰網(wǎng)站設(shè)計(jì)與永泰網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請(qǐng)域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋永泰地區(qū)。
2)要用Image或BufferedImage對(duì)象
3)因?yàn)槟阒貙?xiě)了paint()方法,所以不能在Label里面顯示圖片。你重寫(xiě)了paint()方法后,整個(gè)容器都會(huì)變成畫(huà)布,所以看不到Label組件,自然也就看不到圖片。應(yīng)該在paint方法里面用g.drawImage方法把圖片在畫(huà)布中畫(huà)出來(lái)。參考Java API,Graphics的drawImage方法。
在java swing中需要為容器添加圖片,或者背景圖片。
提供兩種簡(jiǎn)單的解決方案,一種利用JPanel,另一種利用JLabel
1.JPanel(源代碼)
package oo;
import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Drawing {
JFrame jframe = new JFrame();
public static JPanel GImage = null;
public Drawing() {
initFrame();
}
// 初始化窗口
public void initFrame() {
// 利用JPanel添加背景圖片
GImage = new JPanel() {
protected void paintComponent(Graphics g) {
ImageIcon icon = new ImageIcon("image\\benbenla.jpg");
Image img = icon.getImage();
g.drawImage(img, 0, 0, icon.getIconWidth(),
icon.getIconHeight(), icon.getImageObserver());
jframe.setSize(icon.getIconWidth(), icon.getIconHeight());
}
};
jframe.setTitle("測(cè)試背景圖片");
jframe.add(GImage);
jframe.pack();
jframe.setVisible(true);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new Drawing();
}
}
2.JLabel源代碼
package swing.draw;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Drawing2 {
JLabel jlpic = new JLabel();
JFrame jframe = new JFrame();
public Drawing2() {
init1Frame();
}
public void init1Frame() {
ImageIcon icon = new ImageIcon("image\\benbenla.jpg");
icon.setImage(icon.getImage().getScaledInstance(icon.getIconWidth(),
icon.getIconHeight(), Image.SCALE_DEFAULT));
System.out.println(icon.getIconHeight() + "" + icon.getIconWidth());
jlpic.setBounds(0, 0, 1366, 768);
jlpic.setHorizontalAlignment(0);
jlpic.setIcon(icon);
jframe.setSize(1366, 768);
jframe.add(jlpic);
jframe.pack();
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.setVisible(true);
}
public static void main(String args[]) {
new Drawing2();
}
}
用Swing包下的ImageIcon類就可以實(shí)現(xiàn),比如在一個(gè)按鈕中添加一張圖片,就可以用以下代碼實(shí)現(xiàn):ImageIcon imageicon =new ImageIcon(String s);JButton b=new JButton(imageicon); 其中參數(shù)s是所要添加圖片的路徑(絕對(duì)路徑或相對(duì)路徑)和名字。如想添加D盤(pán)下的圖片1.jpg,就可以將上面改成:ImageIcon imageicon =new ImageIcon("D:\1.jpg");
可以利用標(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ì)路徑,則圖片文件必須放在類文件所在文件夾或項(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中。