0

我有一个有 4 列的 jtable,其中最后一列有一个组合框,

示例代码

String[] colNames = {"Name","Email","Department","Status"};
TableModel model = new DefaultTableModel(colNames,200);
table.setModel(model);

TableColumn statusCol = table.getColumnModel().getColumn(3);
comboBox = new JComboBox();
comboBox.addItem("Approver");
comboBox.addItem("Senior Manager");

statusCol.setCellEditor(new DefaultCellEditor(comboBox));

这里的组合框有 2 个选项审批者和高级经理,我正在寻找一种添加条件的方法,因为表中只有一个高级经理?

4

2 回答 2

1

您应该在您的域内处理此问题(例如,在您维护加载到 tableModel 的数据的任何地方添加一个约束)并限制那里的高级管理人员的数量。这是业务逻辑,不要在您的 GUI 中实现它。

于 2013-03-18T12:29:15.273 回答
1

假设您TableModel一开始处于一致状态,例如不超过一名高级经理,目标是在编辑第三列中的单元格时保持该不变性。困难的部分是确保您的听众TableModel看到任何相关的变化。一种方法是使用对象管理器,如@Guillaume Polet在此示例中所示。当托管对象改变状态时,管理器会触发一个PropertyChangeEvent通知监听。TableModel反过来TableModel,通过 通知任何已注册TableModelListener的 ,例如JTable自身fireTableRowsUpdated()

于 2013-03-18T18:37:40.330 回答