JComboBox与TableModel共享数据

时间:2013-07-24 12:10:53

标签: java swing jtable jcombobox tablemodel

我有一个带有“Category”列的表,该列使用JComboBox呈现。此表包含项目费用,称为“费用表”。 JComboBox的创建方式如下:JComboBox(new DefaultComboBoxModel())。

public class Expense {
  Tag category;
}

class Tag {
  String name;
}

我想自定义类别。所以我创建了一个表“类别”,用于添加,删除类别的可能值。该表使用TagTableModel并对字段数据进行操作,该字段数据保存ArrayList值。

class TagTableModel 
  extends AbstractTableModel {
    ArrayList<Tag> data;
    ...
}

用户更改“类别”表中的值后:添加类别,删除类别,在某行上编辑“名称”列,我希望JComboBox中的值也能更新。

有哪些方法可以让JComboBox依赖TagTableModel的值?

1 个答案:

答案 0 :(得分:1)

感谢@kleopatra的想法:)

我按建议使用了TableModelListener:created

public class CategoryTableModelListener 
    implements TableModelListener
{
    public void tableChanged(TableModelEvent e) 
    {
        /** here I get changed row and access object that was in this row and has changed */
    }
}