Java 从JTable填充JComboBox
我有以下JComboBox:Java 从JTable填充JComboBox,java,swing,jtable,actionlistener,jcombobox,Java,Swing,Jtable,Actionlistener,Jcombobox,我有以下JComboBox: JComboBox cbxUf; 下面的JTable JTable tblObjetos; 其结构如下: ------------------------ | Nome | UF | ------------------------ | Nome 1 | AC | | Nome 2 | AC | | Nome 3 | PE | ------------------------ 我需要将
JComboBox cbxUf;
下面的JTable
JTable tblObjetos;
其结构如下:
------------------------
| Nome | UF |
------------------------
| Nome 1 | AC |
| Nome 2 | AC |
| Nome 3 | PE |
------------------------
我需要将所选行从tblObjetos传递到cbxUf的selectedItem,因此我向tblObjetos添加了一个mouseStener,其中包含以下事件:
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));
我的猜测是,您的组合框只包含第二列的值,因此在单击第一列时没有对象可供选择。例如,如果单击第一行,则尝试将所选项目设置为“Nome 1”。组合框中不存在此值,因此不会更改选择。您真正想要的是选择“AC”
您的代码应该是:
cbxUf.setSelectedItem(tblObjetos.getModel().getValueAt(row, 1));
另外,不要使用鼠标侦听器,而是将ListSelectionListener添加到表选择模型中 请发布一个更好的帮助,因为手动设置列值成功了!谢谢!