我有問題關於添加JComboBox,以擴展ObjectTableModel(表是OmniJTable)的自定義表模型中的列。我工作了2天,無法解決這個問題。JComboBox自定義表模型
我解決的一件事是在列中顯示JComboBox,但現在我有選擇任何東西的問題(似乎它不可編輯,和像「setEditable()」不工作)的任何東西。
這裏是代碼,我添加jComboBox到我的OmniJTable與ObjectTableModel。
class CheckBoxCellRenderer extends JComboBox implements TableCellRenderer {
JComboBox combo;
public CheckBoxCellRenderer(JComboBox comboBox) {
this.combo = new JComboBox();
for (int i=0; i<comboBox.getItemCount(); i++){
combo.addItem(comboBox.getItemAt(i));
}
}
@Override
public Component getTableCellRendererComponent(JTable jtable, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
combo.setSelectedItem(value);
return combo;
}
}
private void addComboBoxToStatusColumn(JTable table)
{
final int statusColumnIndex = bazaTelefonowOmniJTable.getColumnModel().getColumnIndex("Status");
TableColumn tmpColum = bazaTelefonowOmniJTable.getColumnModel().getColumn(statusColumnIndex);
final JComboBox comboBox = new JComboBox();
comboBox.setEditable(true);
comboBox.setEnabled(true);
loadRecordStatusFromDictionary(comboBox);
DefaultCellEditor defaultCellEditor=new DefaultCellEditor(comboBox);
tmpColum.setCellEditor(defaultCellEditor);
tmpColum.setCellRenderer(new CheckBoxCellRenderer(comboBox));
bazaTelefonowOmniJTable.setEditable(true);
//table.repaint();
}
正如我所說的,這一個JComboBox的增加列,但我不知道如何使這一個讓我選擇的JComboBox項目。
PS:Sry爲我的英語,這不是我的主要語言。
您需要設置一個編輯器,它是JComboBox並使用Label作爲單元格渲染器。當用戶雙擊單元格時,顯示組合框。如果您需要代碼,請留言。 – KDM
@KDM Ty回覆,你能貼一些代碼示例嗎? – Thodgnir