如何在不同的表单上修改控件?

时间:2012-05-03 20:35:22

标签: java swing netbeans

我需要使用JTable第一列的内容来设置JComboBox下拉列表中的值。 问题是JTable采用不同的Form(JFrame),因此私有JComboBox不能直接访问。 如何从JTable表单向JComboBox表单发送信号和/或事件,让它知道它需要更新它的下拉内容?我不关心数据,我可以创建一个公共String []或者其他东西,但是如何正确地通知JComboBox它需要自己更新?

2 个答案:

答案 0 :(得分:3)

  

我需要使用JTable第一列的内容来设置JComboBox下拉列表中的值。问题是JTable采用不同的表单(JFrame),因此无法直接访问私有JComboBox

为什么JComboBoxJTable应该互相访问?这些只是视图组件。如果您想在不显示表格的情况下显示组合框(例如在测试中)会发生什么?如果它直接从JTable检索数据,则会出现严重问题。 您创建JTable时,您的TableModel包含JTable的实际数据。应该共享的是该模型(或至少是该模型中的数据)。

因此,让组合框的模型和表格的模型共享相同的数据,一切都会很好。

答案 1 :(得分:2)

Swing MVC模型会说您应该更新模型对象。重新显示JComboBox时,它会看到新的模型值。