javaswing怎样让Jtable透明化或者在jtable上加背景图片

2022-03-20 科技 103阅读
importjava.awt.Component;
importjava.awt.Container;

importjavax.swing.ImageIcon;
importjavax.swing.JComponent;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.JTable;
importjavax.swing.table.TableCellRenderer;

publicclassaaa{
publicaaa(){
}

publicstaticvoidmain(String[]args){
JFrameframe=newJFrame("背景透明展示");
ImageIconicon=newImageIcon("003.jpg");
JLabellab=newJLabel(icon);//将图片放入到label中
lab.setBounds(0,0,icon.getIconWidth(),icon.getIconHeight());//设置放有图片的label的位置
JTablet=newJTable(20,3){//设置jtable的单元格为透明的
publicComponentprepareRenderer(TableCellRendererrenderer,
introw,intcolumn){
Componentc=super.prepareRenderer(renderer,row,column);
if(cinstanceofJComponent){
((JComponent)c).setOpaque(false);
}
returnc;
}
};
t.setOpaque(false);//设置jtable本身为透明的
frame.getContentPane().add(lab,-1);//jframe本身是窗体,不能放置任何组件,用getContentPane()方法得到frame的默认内容面板,将lab放入其中,-1表示放入面板的下层
frame.getContentPane().add(t,0);//0表示放在面板的最顶层
Containercon=frame.getContentPane();
((JPanel)con).setOpaque(false);//设置面板为透明的
frame.setSize(500,500);
frame.setVisible(true);
}
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com