我需要使用JTable第一列的内容来设置JComboBox下拉列表中的值。 问题是JTable采用不同的Form(JFrame),因此私有JComboBox不能直接访问。 如何从JTable表单向JComboBox表单发送信号和/或事件,让它知道它需要更新它的下拉内容?我不关心数据,我可以创建一个公共String []或者其他东西,但是如何正确地通知JComboBox它需要自己更新?
答案 0 :(得分:3)
我需要使用
JTable
第一列的内容来设置JComboBox
下拉列表中的值。问题是JTable
采用不同的表单(JFrame
),因此无法直接访问私有JComboBox
。
为什么JComboBox
和JTable
应该互相访问?这些只是视图组件。如果您想在不显示表格的情况下显示组合框(例如在测试中)会发生什么?如果它直接从JTable
检索数据,则会出现严重问题。
您创建JTable
时,您的TableModel
包含JTable
的实际数据。应该共享的是该模型(或至少是该模型中的数据)。
因此,让组合框的模型和表格的模型共享相同的数据,一切都会很好。
答案 1 :(得分:2)
Swing MVC模型会说您应该更新模型对象。重新显示JComboBox时,它会看到新的模型值。