您的位置:首页 > 其它

设置背景图片的小技巧。

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: