gpt4 book ai didi

java - JTable和JComboBox的结合使用

转载 作者:行者123 更新时间:2023-12-02 07:13:14 26 4
gpt4 key购买 nike

我正在尝试制作一个 JTable,其中的单元格中有一个 JComboBox。我知道我可以使用单元格编辑器,但诀窍是我想要在每一行的组合框中包含不同的信息。表中的每一行代表一个对象,在该对象上有一个数组列表,它是我想要在组合框中的该数组列表的内容。这是到目前为止我的思考过程。

table = new JTable(tableModel);
tableModel = new DefaultTableModel();
forestTable.setModel(tableModelForest);
tmpColum = forestTable.getColumnModel().getColumn(5);
tmpColum.setCellEditor(new DefaultCellEditor(comboBox));
comboBox = new JComboBox<Tree> ();
comboBox.setEditable(false);

现在,当我稍后调用该方法(通过按按钮)时,我想在第 5 列中插入一个带有唯一组合框的新行,但我不知道该怎么做。我已经尝试过。

public void fillTable(String text){
tableModel.insertRow(tableModel.getRowCount(), "" } );
tableModel.fireTableRowsInserted(
tableModel.getRowCount(),
tableModel.getRowCount());

comboBox.addItem(text);

}

最佳答案

正确的方法仍然是使用单元格编辑器。

tmpColum.setCellEditor(new DefaultCellEditor(comboBox) {
@Override
public Component getTableCellEditorComponent(JTable table,
Object value,
boolean isSelected,
int row,
int column) {
JComboBox comboBox = (JComboBox)super.getTableCellEditorComponent(
table, value, isSelected, row, column);
// stuff the combobox with values and selection.
ComboBoxModel cbmodel = getMyCBModel(row); // Or (ComboBoxModel)value
comboBox.setModel(cbmodel);
// Or:
if (value == null)
comboBox.setSelectedIndex(-1);
else
comboBox.setSelectedItem(value);
return comboBox;
}
});

关于java - JTable和JComboBox的结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15244502/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com