繁体   English   中英

从JTable填充JComboBox

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM