我试图将JComboBox放置在JTable的某个列内。 我有这样的代码,它工作:JComboBox的Java JTable
model = new DefaultTableModel();
JComboBox<String> optionComboCell = new JComboBox<String>();
optionComboCell.addItem("Option 1");
optionComboCell.addItem("Option 2");
optionComboCell.setSelectedIndex(1);
table = new JTable(model);
// Adding here all the columns, removed for clarity
model.addColumn("Options");
TableColumn optionsColumn = table.getColumn("Options");
optionsColumn.setCellEditor(new DefaultCellEditor(optionComboCell));
我的问题,这一点,是直到在列的单元格,选择它并不显示为JComboBox中。 加载JFrame时,整个表看起来都是一样的,就好像所有单元格中只有文本一样。 单击时,它将显示组合框的箭头和选项,但再次取消选择时,它看起来像常规单元格。
任何方法来解决这个问题?
它有点作品。我已经使用了ComboBoxCellRenderer类,现在它显示为一个组合框,但是,一旦选择了一个选项,它仍然显示为一个空的组合框。只有当下拉列表打开时,所选项目才可见 –
@Llablabla您必须确保您试图选择的项目(在调用getTableCellRendererComponent期间)实际存在于ComboBox模型中,否则它不会工作。 –
谢谢。如何设置默认值?因为起初,没有选项显示为选中状态。只有当我选择一个 –