Java swing - 在JFrame中添加背景图片
之前写了一个窗口程序,写完过后想添加一些功能,比如在窗体添加背景图片。
我把显示背景图片的代码放在了一个方法里面,因为我设计了一个可以更换背景图片的监听事件,将这个代码放在方法里面便于二次调用。
JLabel bglabel = new JLabel();//创建JLabel getBackgroundPicture(bglabel,contentPane);//方法体见下面代码块 this.getLayeredPane().add(bglabel,new Integer(Integer.MIN_VALUE));//将背景标签添加到JFrame的LayeredPane中,我的方法继承了JFrame,所以这里使用了this
//设置背景图片 public void getBackgroundPicture(JLabel bglabel,JPanel contentPane){ File dir = new File("src/img/picture"); File[] list = dir.listFiles(); String path = list[index].getAbsolutePath();//获取路径 ImageIcon background=new ImageIcon(path); index++; if(index >= list.length){ index = 0; } bglabel.setIcon(background);//将图片设置到Jlabel中 bglabel.setBounds(-210, -210, background.getIconWidth(), background.getIconHeight());//设图片显示的区域 contentPane.setOpaque(false);//设置面板为透明,在gbLabel之上的JPanel都要设置为透明 }-------------->
以上的配置就已经完成了背景图片的设置了;
添加监听,点击背景图片更换背景图片
contentPane.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e){ if(e.getClickCount() == 1){
int num = JOptionPane.showConfirmDialog(null, "你需要更换背景吗?", "提示",JOptionPane.YES_NO_OPTION); if(num == JOptionPane.YES_OPTION){ //调用方法,更换背景 getBackgroundPicture(bglabel,contentPane); } } } });
一个更换背景图片的功能就实现了!不足之处,欢迎赐教
上一篇:
IDEA上Java项目控制台中文乱码