在java swing中需要为容器添加图片,或者背景图片。
提供两种简单的解决方案,一种利用JPanel,另一种利用JLabel
1.JPanel(源代码)
packageoo;
importjava.awt.Graphics;
importjava.awt.Image;
importjava.io.File;
importjavax.swing.ImageIcon;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
publicclassDrawing {
JFrame jframe = newJFrame();
publicstaticJPanel GImage =null;
publicDrawing() {
initFrame();
}
// 初始化窗口
publicvoidinitFrame() {
// 利用JPanel添加背景图片
GImage = newJPanel() {
protectedvoidpaintComponent(Graphics g) {
ImageIcon icon = newImageIcon("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("测试背景图片");
jframe.add(GImage);
jframe.pack();
jframe.setVisible(true);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
publicstaticvoidmain(String[] args) {
newDrawing();
}
}
2.JLabel源代码
packageswing.draw;
importjava.awt.Image;
importjavax.swing.ImageIcon;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
/** 利用JLabel来构建图片 */
publicclassDrawing2 {
JLabel jlpic = newJLabel();
JFrame jframe = newJFrame();
publicDrawing2() {
init1Frame();
}
publicvoidinit1Frame() {
ImageIcon icon = newImageIcon("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);
}
publicstaticvoidmain(String args[]) {
newDrawing2();
}
}
添加控件:
jlpic.setIcon(icon);
Container c = new Container();
JLabel user = new JLabel("用户:");
JLabel password = new JLabel("密码:");
JTextField txf_userName = new JTextField();
JPasswordField pwd_password = new JPasswordField()
{
public void paste(){
UIManager.getLookAndFeel().provideErrorFeedback(this);
}
};
user.setBounds(200,25,50,25);
password.setBounds(200,52,50,25);
txf_userName.setBounds(300,25,150,25);
pwd_password.setBounds(300,52,150,25);
c.add(user);
c.add(txf_userName);
c.add(password);
c.add(pwd_password);
c.add(jlpic);
jframe.setSize(1366, 768);
// jframe.add();
jframe.add(c);