设置背景图片的小技巧。

来源:互联网 发布:动力节点java源码 编辑:程序博客网 时间:2024/05/21 08:53
设置背景图片小技巧
方法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);

0 0
原创粉丝点击