|
|

方法很简单,只是修改 DefaultTableCellRenderer 里 的 getTableCellRendererComponent 方法,计算行数奇偶,设置颜色。 间隔色的表格可以缓解用户眼睛疲劳
================================================================
- /**
- * [RoundColorTable.java] 间隔色的 JTable
- *
- * 创建日期:(2003-8-11)
- * @author:ONE_Fox
- */
-
- import java.awt.*;
- import java.awt.event.*;
- import javax.swing.*;
- import javax.swing.table.*;
-
-
- public class RoundColorTable extends JFrame {
- private String[] colname = {"第1列","第2列","第3列","第4列","第5列"}; //表头信息
- private String[][] data = new String[10][5]; //表内容
-
- //界面组件----------------------//
- private JScrollPane scroPanel = new JScrollPane(); //中底层滚动面板
- private DefaultTableModel model; //列表默认TableModel
- private JTable table;
-
-
- /**
- * 构造方法 SelectionDemo()
- */
- public RoundColorTable() {
- makeFace();
- addListener();
- showFace();
- }
-
-
-
- /**
- * 方法: 界面构建 makeFace()
- */
- private void makeFace() {
-
- //表内容数组 data[][] 赋值------------//
- for(int i = 0; i < 10; i++) {
- for(int j = 0; j < 5; j++) {
- data[i][j] = "( " + (j+1) + ", " + (i+1) + " )";
- }
- }
-
- table = new JTable(model = new DefaultTableModel(data,colname));
-
- //新建列表现器------------------------//
- DefaultTableCellRenderer tcr = new DefaultTableCellRenderer() {
- public Component getTableCellRendererComponent(JTable table,
- Object value, boolean isSelected, boolean hasFocus,
- int row, int column) {
-
- if(row%2 == 0)
- setBackground(Color.white); //设置奇数行底色
- else if(row%2 == 1)
- setBackground(new Color(206,231,255)); //设置偶数行底色
-
- return super.getTableCellRendererComponent(table, value,
- isSelected, hasFocus, row, column);
- }
- };
- //设置列表现器------------------------//
- for(int i = 0; i < colname.length; i++) {
- table.getColumn(colname[i]).setCellRenderer(tcr);
- }
-
-
- scroPanel.getViewport().setBackground(Color.white);
- scroPanel.getViewport().add(table);
-
- //总体界面布局------------------------//
- getContentPane().add(scroPanel, BorderLayout.CENTER);
- }
-
-
-
- /**
- * 方法: 界面显示 showFace()
- */
- private void showFace() {
- setTitle("间隔色的 JTable");
- setSize(500,400);
- Toolkit tmpTK = Toolkit.getDefaultToolkit();
- Dimension dime = tmpTK.getScreenSize();
-
- setLocation(dime.width2 - 250, dime.height2 - 200);
- show();
- }
-
-
-
- /**
- * 方法: 添加事件监听 addListener()
- */
- private void addListener() {
- this.addWindowListener(new WindowAdapter(){ //添加窗口关闭事件
- public void windowClosing(WindowEvent e){
- setVisible(false);
- dispose();
- System.exit(0);
- }
- });
- }
-
-
- /**
- * 程序入口 main()
- */
- public static void main(String args[]) {
- //获取设置系统风格-------------------//
- try {
- String laf = UIManager.getSystemLookAndFeelClassName();
- UIManager.setLookAndFeel(laf);
- } catch (Exception e) {}
-
- new RoundColorTable();
- }
- }
|
|