如何给JAVA GUI 窗口添加背景图片?
我都试过很多次方法了,不是按钮被遮挡,就是文本框显示一半,点一下就出来了;【JLabel("用户名:");】标签根本看不见,完全挡完了。怎么解决呢~~?...
我都试过很多次方法了,不是按钮被遮挡,就是文本框显示一半,点一下就出来了;【JLabel("用户名:");】标签根本看不见,完全挡完了。怎么解决呢~~?
展开
3个回答
展开全部
用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);
}
}
}
继承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);
}
}
}
展开全部
Image image=new ImageIcon("back.jpg").getImage();
//////
//覆盖JFrame的 paint方法
public void paint(Graphics g){
super.paint(g);
g.drawImage(image, 0,0, null);
}
//////
//覆盖JFrame的 paint方法
public void paint(Graphics g){
super.paint(g);
g.drawImage(image, 0,0, null);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我是刚想学习不好意思不知道解决
追问
好哇,我们可以一起学呀!我QQ:719181295
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询