TableColumn column = table.getColumnModel().getColumn(columnIndex); DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(); renderer.setBackground(Color.YELLOW); table.getColumnModel().getColumn(columnIndex).setCellRenderer(renderer); public class CustomRenderer extends DefaultTableCellRenderer { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Component component = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); return component; } } JTableHeader header = table.getTableHeader(); header.setBackground(Color.BLUE); DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(); if (row % 2 == 0) { renderer.setBackground(Color.LIGHT_GRAY); } else { renderer.setBackground(Color.WHITE); } table.getColumnModel().getColumn(columnIndex).setCellRenderer(renderer); public class CustomCellEditor extends AbstractCellEditor implements TableCellEditor { public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { Component component = super.getTableCellEditorComponent(table, value, isSelected, row, column); return component; } } import javax.swing.*; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableColumn; import java.awt.*; public class JTableStyleExample extends JFrame { private JTable table; public JTableStyleExample() { DefaultTableModel model = new DefaultTableModel(new Object[][]{{"A", "B", "C"}, {"1", "2", "3"}}, new Object[]{"Column 1", "Column 2", "Column 3"}); table = new JTable(model); TableColumn column = table.getColumnModel().getColumn(0); column.setPreferredWidth(100); DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(); renderer.setBackground(Color.YELLOW); table.getColumnModel().getColumn(1).setCellRenderer(renderer); JTableHeader header = table.getTableHeader(); header.setBackground(Color.BLUE); DefaultTableCellRenderer rowRenderer = new DefaultTableCellRenderer() { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Component component = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if (row % 2 == 0) { component.setBackground(Color.LIGHT_GRAY); } else { component.setBackground(Color.WHITE); } return component; } }; table.setDefaultRenderer(Object.class, rowRenderer); table.getColumnModel().getColumn(2).setCellEditor(new CustomCellEditor()); add(new JScrollPane(table)); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(400, 300); setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(JTableStyleExample::new); } } class CustomCellEditor extends AbstractCellEditor implements TableCellEditor { public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { Component component = super.getTableCellEditorComponent(table, value, isSelected, row, column); return component; } public Object getCellEditorValue() { return super.getCellEditorValue(); } }


上一篇:
下一篇:
切换中文