JTable: setDefaultEditor(Class columnClass, TableCellEditor editor)
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
public class MainClass extends JFrame {
ColorName colors[] = { new ColorName("Red"), new ColorName("Green"), new ColorName("Blue"),
new ColorName("Black"), new ColorName("White") };
public MainClass() {
super("Table With DefaultCellEditor Example");
setSize(500, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JTable table = new JTable(new AbstractTableModel() {
ColorName data[] = { colors[0], colors[1], colors[2], colors[3], colors[4], colors[0],
colors[1], colors[2], colors[3], colors[4] };
public int getColumnCount() {
return 3;
}
public int getRowCount() {
return 10;
}
public Object getValueAt(int r, int c) {
switch (c) {
case 0:
return (r + 1) + ".";
case 1:
return "Some pithy quote #" + r;
case 2:
return data[r];
}
return "Bad Column";
}
public Class getColumnClass(int c) {
if (c == 2)
return ColorName.class;
return String.class;
}
public boolean isCellEditable(int r, int c) {
return c == 2;
}
public void setValueAt(Object value, int r, int c) {
data[r] = (ColorName) value;
}
});
table.setDefaultEditor(ColorName.class, new DefaultCellEditor(new JComboBox(colors)));
table.setDefaultRenderer(ColorName.class, new DefaultTableCellRenderer());
table.setRowHeight(20);
getContentPane().add(new JScrollPane(table));
}
public static void main(String args[]) {
MainClass ex = new MainClass();
ex.setVisible(true);
}
public class ColorName {
String cname;
public ColorName(String name) {
cname = name;
}
public String toString() {
return cname;
}
}
}
Related examples in the same category
1. | TableHeader.cellBorder | | |
2. | Table.scrollPaneBorder | | |
3. | JTable.AUTO_RESIZE_ALL_COLUMNS | | |
4. | JTable.AUTO_RESIZE_LAST_COLUMN | | |
5. | JTable.AUTO_RESIZE_NEXT_COLUMN | | |
6. | JTable.AUTO_RESIZE_OFF | | |
7. | JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS | | |
8. | new JTable(Object name, Object[][] data) | | |
9. | new JTable(TableModel dm) | | |
10. | new JTable(Vector rowData, Vector columnNames) | | |
11. | JTable: addColumnSelectionInterval(int index0, int index1) | | |
12. | JTable: changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend) | | |
13. | JTable: clearSelection() | | |
14. | JTable: configureEnclosingScrollPane() 'Headerless Table' | | |
15. | JTable: createDefaultColumnsFromModel() | | |
16. | JTable: getCellSelectionEnabled() | | |
17. | JTable: getColumnCount() | | |
18. | JTable: getColumnModel() | | |
19. | JTable: getColumnSelectionAllowed() | | |
20. | JTable: getIntercellSpacing() | | |
21. | JTable: getRowCount() | | |
22. | JTable: getRowSelectionAllowed() | | |
23. | JTable: getSelectedColumns() | | |
24. | JTable: getSelectedRows() | | |
25. | JTable: getSelectionModel() | | |
26. | JTable: getTableHeader() | | |
27. | JTable: getValueAt(int row, int column) | | |
28. | JTable: isCellSelected(int row, int column) | | |
29. | JTable: moveColumn(int column, int targetColumn) | | |
30. | JTable: print() | | |
31. | JTable: print(PrintMode p, MessageFormat hFormat, MessageFormat fFormat) | | |
32. | JTable: removeColumn(TableColumn aColumn) | | |
33. | JTable: removeColumnSelectionInterval(int index0, int index1) | | |
34. | JTable: removeRowSelectionInterval(int index0, int index1) | | |
35. | JTable: selectAll() | | |
36. | JTable: setAutoCreateColumnsFromModel(boolean autoCreateColumnsFromModel) | | |
37. | JTable: setAutoResizeMode(int m) | | |
38. | JTable: setCellSelectionEnabled(boolean cellSelectionEnabled) | | |
39. | JTable: setColumnSelectionAllowed(boolean columnSelectionAllowed) | | |
40. | JTable: setDefaultRenderer(Class columnClass, TableCellRenderer renderer) | | |
41. | JTable: setFocusable(boolean focusable) | | |
42. | JTable: setGridColor(Color gridColor) | | |
43. | JTable: setIntercellSpacing(Dimension intercellSpacing) | | |
44. | JTable: setPreferredScrollableViewportSize(Dimension size) | | |
45. | JTable: setRowHeight(int rowHeight) | | |
46. | JTable: setRowSelectionAllowed(boolean rowSelectionAllowed) | | |
47. | JTable: setRowSelectionInterval(int index0, int index1) | | |
48. | JTable: setRowSorter(RowSorter extends TableModel> arg0) | | |
49. | JTable: setSelectionMode(int m) | | |
50. | JTable: setShowGrid(boolean showGrid) | | |
51. | JTable: setShowHorizontalLines(boolean showHorizontalLines) | | |
52. | JTable: setTableHeader(JTableHeader tableHeader) | | |
53. | JTable: setShowVerticalLines(boolean showVerticalLines) | | |
54. | JTable: setValueAt(Object aValue, int row, int column) | | |