![]() |
The Java Developers Almanac 1.4Order this book from Amazon. |
e959. Using a JComboBox in a Cell in a JTable ComponentIf the possible values allowed in a column must be one from a small fixed set of values, a combobox might be appropriate as the cell editor for that column. By using a combobox, it is impossible for the user to input an invalid value.JTable table = new JTable(); DefaultTableModel model = (DefaultTableModel)table.getModel(); // Add some columns model.addColumn("A", new Object[]{"item1"}); model.addColumn("B", new Object[]{"item2"}); // These are the combobox values String[] values = new String[]{"item1", "item2", "item3"}; // Set the combobox editor on the 1st visible column int vColIndex = 0; TableColumn col = table.getColumnModel().getColumn(vColIndex); col.setCellEditor(new MyComboBoxEditor(values)); // If the cell should appear like a combobox in its // non-editing state, also set the combobox renderer col.setCellRenderer(new MyComboBoxRenderer(values)); public class MyComboBoxRenderer extends JComboBox implements TableCellRenderer { public MyComboBoxRenderer(String[] items) { super(items); } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (isSelected) { setForeground(table.getSelectionForeground()); super.setBackground(table.getSelectionBackground()); } else { setForeground(table.getForeground()); setBackground(table.getBackground()); } // Select the current value setSelectedItem(value); return this; } } public class MyComboBoxEditor extends DefaultCellEditor { public MyComboBoxEditor(String[] items) { super(new JComboBox(items)); } }
e954. Preventing Invalid Values in a Cell in a JTable Component e955. Setting the Activation Click Count for a Table Cell Editor in a JTable Component e956. Programmatically Starting and Stopping Cell Editing in a JTable Component e957. Creating a Text Field That Mirrors the Value in the Anchor Cell in a JTable Component e958. Disabling User Edits in a JTable Component e960. Using a List JSpinner as a Cell Editor in a JTable Component
© 2002 Addison-Wesley. |