我無法將javax.swing.JComboBox放入org.jdesktop.swingx.JXTable單元格中。我瀏覽了之前關於這個問題的問題,但沒有幫助。JTable單元格內的JComboBox
我想:
colModel.getColumnExt(HDTableAdapter.STATUS).setCellEditor(editorCB);
colModel.getColumnExt(HDTableAdapter.STATUS).setCellRenderer(rendererCB);
class comboBoxRenderer extends JComboBox implements TableCellRenderer {
public comboBoxRenderer(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());
}
setSelectedItem(value);
return this;
}
}
class comboBoxEditor extends DefaultCellEditor {
public comboBoxEditor(String[] items) {
super(new JComboBox(items));
}
}
但在這種情況下,我得到的細胞內未編輯的ComboBox。
請學習java的命名規則,並堅持他們 – kleopatra
你爲什麼驚訝? JComboBox在默認情況下是不可編輯的... – kleopatra
一個註釋追逐另一個只注意到JXTable位:_dont_實現一個渲染器(曾經在SwingX!中),而不是子類ComponentProvider,用於不支持的組件類型(在測試部分中有xxVisualCheck中的示例,xx == Renderer或者== JXTable(可能,完全不記得) –
kleopatra