— Java课程设计 – 理财系统 – 界面透明番外篇
功能详解戳这里Java课程设计–理财系统–功能详解:
swing界面较为简朴,用substance包美化又常常会有各种各样的问题,所以本次课程设计界面采用更改背景图+界面透明进行美化
主要用到setOpaque方法,但不同控件具体实现略有不同
效果图:
1、JPanel
JPanel p = new JPanel();
p.setOpaque(false);
2、JButton
JButton bt1 = new JButton("修改密码");
bt1.setOpaque(false);
bt1.setContentAreaFilled(false);
bt1.setForeground(Color.WHITE);//根据背景图片将字体调整为白色
3、JComboBox
public static JComboBox iEBox= new JComboBox(new Object[] {"支出","收入"});
iEBox.setOpaque(false);
iEBox.setBackground(new Color(41,36,33));
iEBox.setForeground(Color.WHITE);
iEBox.setFont(new Font("Serif", Font.BOLD, 18));
iEBox.setBorder(BorderFactory.createBevelBorder(0));
4、JTextField
JTextField txt1 = new JTextField("0");
txt1.setOpaque(false);
txt1.setForeground(Color.WHITE);
txt1.setCaretColor(Color.WHITE); //设置光标颜色
5、JTable(利用较复杂,需细心)
Table单格渲染器+表头透明+表头边框+滚动条透明
public JTable table=new JTable(new Show().playerInfo,Names);
JScrollPane s=new JScrollPane(table); //滚动条
table.setForeground(Color.WHITE);
table.setFont(new Font("Serif", Font.BOLD, 18));
table.setRowHeight(30); //表格行高
table.setPreferredScrollableViewportSize(new Dimension(850, 500));
table.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
renderer.setOpaque(false); //设置透明
for(int i=0;i<Names.length;i++){
table.getColumn(Names[i]).setCellRenderer(renderer);//单格渲染
TableColumn column = table.getTableHeader().getColumnModel().getColumn(i);
column.setHeaderRenderer(renderer);//表头渲染
}
table.setOpaque(false);
table.getTableHeader().setOpaque(false);
table.getTableHeader().setBorder(BorderFactory.createBevelBorder(0));
s.getVerticalScrollBar().setOpaque(false);//滚动条设置透明
s.setOpaque(false);
s.getViewport().setOpaque(false);
s.setColumnHeaderView(table.getTableHeader());
s.getColumnHeader().setOpaque(false);