如何在java中的GlazedLists / JTable中编辑列,行或单元格?

时间:2012-06-06 10:04:26

标签: java swing glazedlists

是否可以删除一行代码以显示如何使GlazdJTable的单元格可编辑?

JTable table = new Jtable();
    TableFormat tableFormat = GlazedLists.tableFormat(properties, headers);
    model = new EventTableModel<Artikel>(filterList, tableFormat);
    selectionModel = new EventSelectionModel<Artikel>(filterList);

    table.setSelectionModel(selectionModel);
    table.setModel(model);

// 如何设置表格单元格可编辑?

注意:我知道TableFormat必须实现WritableTableFormat接口。但我不知道我应该创建一个自定义表格格式,或者是否可以将Jtable单元格设置为可编辑的。

2 个答案:

答案 0 :(得分:2)

覆盖TableModel's方法 public boolean isCellEditable(int rowIndex, int columnIndex)为其他单元格返回true表示可编辑和false。

答案 1 :(得分:1)

推荐的方法是使用WritableTableFormat。 EventTableModel检查表格格式是否为WritableTableFormat,如果是,则将isEditable()问题委托给它(如EventTableModel docs中所述)。否则,EventTableModel假定该表不可编辑。

目前您正在使用GlazedLists.tableFormat()方便方法,而不是实例化您自己的TableFormat。没关系,有一种方法可以精确地用于这种情况,您可以通过传入布尔数组来指定每列是否可编辑。请参阅GlazedLists.tableFormat(String[] propertyNames, String[] columnLabels, boolean[] editable) documentation