设置背景图片的小技巧。
2015-02-05 09:40
162 查看
设置背景图片小技巧
方法1.我们通常设置背景图片的方法是:使用paint方法,通过drawIamge方法将图片划到窗体中指定的位置
public void paint(Graphics g){
//获取画布
super.paint(g);
ImageIcon icon = new ImageIcon("image/back.jpg");
g.drawImage(icon.getImage(),0,0,getSize().width,getSize().heigth,this);
}
,此方法的简单易学,但同时也存在一些小问题,例如,如果窗体上有其他组件时,必须通过repaint();方法重绘组件,否则组件将被设置的背景图片覆盖,无法显示出来。因此针对这种问题,我们可以通过如下方法进行改进
方法2创建一个图片标签,JLabel lable=new JLable(new ImageIcon("image/back.png"));然后通过设置图片的绝对位置和设置容器间的层次关系,设置到最底层this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
最后将ContentPane设置成透明,其他的组件就可以直接添加上去。
完整代码块
// 通过Jlabel设置图片,并把图片添加到容器面板中
JLabel label = new JLabel( new ImageIcon("image/back1.jpg"));
label.setBounds(0, 0, getSize().width, getSize().height);
// 添加图片的时候,必须要设置层关系,设置到最底层
this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
// 把contentPane设置成透明的
((javax.swing.JPanel) this.getContentPane()).setOpaque(false);
常见设置表透明效果(实测)
可以先通过以上设置背景的方法2完成背景的设置,然后再定义JTable时,重写prepareRenderer方法,在prepareRenderer方法中,返回的是一个Comonpent,必须强转为JComonpent,将JTable宋玉所在的面板设置成透明,最后再将JTable设置成透明,
即完成了整个窗体中JTable的透明。
JTable table = new JTable(model) {
@Override
public Component prepareRenderer(TableCellRenderer renderer,
int row, int column) {
Component c = super.prepareRenderer(renderer, row, column);
((JComponent) c).setOpaque(false);
return c;
}
};
table.setOpaque(false);
方法1.我们通常设置背景图片的方法是:使用paint方法,通过drawIamge方法将图片划到窗体中指定的位置
public void paint(Graphics g){
//获取画布
super.paint(g);
ImageIcon icon = new ImageIcon("image/back.jpg");
g.drawImage(icon.getImage(),0,0,getSize().width,getSize().heigth,this);
}
,此方法的简单易学,但同时也存在一些小问题,例如,如果窗体上有其他组件时,必须通过repaint();方法重绘组件,否则组件将被设置的背景图片覆盖,无法显示出来。因此针对这种问题,我们可以通过如下方法进行改进
方法2创建一个图片标签,JLabel lable=new JLable(new ImageIcon("image/back.png"));然后通过设置图片的绝对位置和设置容器间的层次关系,设置到最底层this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
最后将ContentPane设置成透明,其他的组件就可以直接添加上去。
完整代码块
// 通过Jlabel设置图片,并把图片添加到容器面板中
JLabel label = new JLabel( new ImageIcon("image/back1.jpg"));
label.setBounds(0, 0, getSize().width, getSize().height);
// 添加图片的时候,必须要设置层关系,设置到最底层
this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
// 把contentPane设置成透明的
((javax.swing.JPanel) this.getContentPane()).setOpaque(false);
常见设置表透明效果(实测)
可以先通过以上设置背景的方法2完成背景的设置,然后再定义JTable时,重写prepareRenderer方法,在prepareRenderer方法中,返回的是一个Comonpent,必须强转为JComonpent,将JTable宋玉所在的面板设置成透明,最后再将JTable设置成透明,
即完成了整个窗体中JTable的透明。
JTable table = new JTable(model) {
@Override
public Component prepareRenderer(TableCellRenderer renderer,
int row, int column) {
Component c = super.prepareRenderer(renderer, row, column);
((JComponent) c).setOpaque(false);
return c;
}
};
table.setOpaque(false);
相关文章推荐
- iOS小技巧:用小图片重复显示来设置大背景图片
- 代码设置背景图片
- 一个可设置背景图片的验证码图片的生成方法
- qt4:如何设置(button,lable,textedit,lineedit,progressbar等的)背景图片
- Richedit control的设置背景图片办法
- Richedit control的设置背景图片办法
- WinForm中如何设置MDI父窗体的背景图片
- 使用CSS给空元素设置背景图片
- [原创]为CEdit设置背景图片
- 设置窗体背景图片,并且让图片随着窗体的大小的调整而调整大小
- 给TreeView设置背景图片-------即将TreeView的背景设为透明的方法
- gridview模版列设置鼠标移过时背景图片
- 将图片的背景设置为透明
- VC 对话框设置背景颜色和图片
- qt4:给你的窗口设置一个背景图片
- GMF应用程序设置背景图片
- div+css使用backgroundRepeat样式设置背景图片的显示方式
- 自定义ListCtrl中设置背景图片的问题
- Richedit control的设置背景图片办法
- 可以的阿,为什么就不可以呢?甚至还可以设置背景图片呢