如何给JAVA GUI 窗口添加背景图片?

我都试过很多次方法了,不是按钮被遮挡,就是文本框显示一半,点一下就出来了;【JLabel("用户名:");】标签根本看不见,完全挡完了。怎么解决呢~~?

用PANEL
继承PANEL重写paintComponent方法,
这些控制添加在panel上,就不会出现你说的问题了。

重写paint,会出现你说的问题
直接在窗体上添加了背景图片也会出现你说的问题。

下边是例子。

------------------------------------------------------------------------------------
import javax.swing.ImageIcon;

public class App extends JFrame {
private JTextField textField;

public App() {
getContentPane().setLayout(new BorderLayout(0, 0));

JPanel panel = new ImagePanel();
getContentPane().add(panel);
panel.setLayout(null);

JButton btnNewButton = new JButton("New button");
btnNewButton.setBounds(108, 234, 93, 23);
panel.add(btnNewButton);

textField = new JTextField();
textField.setBounds(214, 176, 96, 19);
panel.add(textField);
textField.setColumns(10);

setSize(460, 350);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}

public static void main(String[] args) {
new App();
}

class ImagePanel extends JPanel {

protected void paintComponent(Graphics g) {
super.paintComponent(g);
ImageIcon icon = new ImageIcon("D:\\1.jpg");
g.drawImage(icon.getImage(), 0, 0, null);

}

}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-18
Image image=new ImageIcon("back.jpg").getImage();

//////
//覆盖JFrame的 paint方法

public void paint(Graphics g){
super.paint(g);
g.drawImage(image, 0,0, null);

}
第2个回答  2012-05-21
我是刚想学习不好意思不知道解决追问

好哇,我们可以一起学呀!我QQ:719181295

相似回答