为JTable、Java设置条件

为JTable、Java设置条件,java,swing,jtable,jcombobox,Java,Swing,Jtable,Jcombobox,我有一个包含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

我有一个包含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));

在这里,组合框有两个选项approver和senior manager,我正在寻找一种方法来添加条件,即表中只有一名高级经理?

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

假设您的
表格模型开始时处于一致状态,例如不超过一名高级管理人员,目标是在编辑第三列中的单元格时保持不变。难点在于确保
TableModel
的侦听器看到任何相关更改。一种方法是使用对象管理器,如@Guillaume Polet所示。管理器触发一个
PropertyChangeEvent
,在托管对象更改状态时通知侦听
TableModel
TableModel
通过
fireTableRowsUpdated()
通知任何已注册的
tablemodelistener
,例如
JTable
本身,请告诉我
我正在寻找一种方法来添加条件,表中只有一位高级经理?
hmmm请看我的,请展示一个SSCCE,演示问题谢谢你的回答,我是用业务逻辑来做的,但是当用户添加新员工并一次更改状态时,情况失败,它不起作用@Jeroen:我知道你的意思,但我认为在GUI中实现它是个好主意。我想试试GUI