1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
   |  
public class Main
{
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {                
                JFrame frame = new JFrame();
                frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
 
                JTable table = new JTable();
                table.setModel(new DefaultTableModel(new Object[][]{{1, "a", true}, {2, "b", false}},
                                              new Object[]{"int", "string", "boolean"})
                        );
 
                table.getColumnModel().getColumn(2).setCellRenderer(new CheckBoxRenderer());
 
                frame.getContentPane().add(new JScrollPane(table));
 
                frame.pack();
                frame.setVisible(true);
            }
        });
    }
 
    private static class CheckBoxRenderer extends JCheckBox implements TableCellRenderer {
 
            public CheckBoxRenderer() {
 
            }
 
            /* (non-Javadoc)
             * @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int)
             */
            public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
                    this.setSelected((Boolean) value);
                    return this;
            }
    }
} | 
Partager