[英]Populate JComboBox from JTable
我有以下JComboBox:
JComboBox cbxUf;
和下面的JTable
JTable tblObjetos;
具有以下结构:
------------------------
| Nome | UF |
------------------------
| Nome 1 | AC |
| Nome 2 | AC |
| Nome 3 | PE |
------------------------
我需要将选定的行从tblObjetos传递到cbxUf的selectedItem,因此我向tblObjetos添加了一个MouseListener,其中包含以下事件:
public void mouseClicked(MouseEvent evt){
int col = tblObjetos.getSelectedColumn();
int row = tblObjetos.getSelectedRow();
cbxUf.setSelectedItem(tblObjetos.getModel().getValueAt(row, col));
}
它设法用选定的行填充cbxUf,但是只有在我单击UF列时才可以。 如果我单击表格的左侧,则selectedItem完全不会更改。
难道我做错了什么? 有其他选择吗?
谢谢!
cbxUf.setSelectedItem(tblObjetos.getModel().getValueAt(row, col));
我的猜测是您的comboBox仅包含第二列的值,因此单击第一列时没有对象可供选择。 例如,如果您单击第一行,则尝试将所选项目设置为“ Nome 1”。 此值在您的组合框中不存在,因此不会更改选择。 您真正想要的是选择“ AC”。
您的代码应为:
cbxUf.setSelectedItem(tblObjetos.getModel().getValueAt(row, 1));
同样,与其使用MouseListener而不是将ListSelectionListener添加到表选择模型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.