【发布时间】:2016-09-22 15:36:11
【问题描述】:
我有一个大约 17 列的 JTable。对于其中一些列,我想要组合框,对于其他列,我不想要。一些代码:
public final JTable table;
void setCellEditors(){
setBooleanCellEditor (table); // comboBox for boolean values
setIntCellEditor (table); // comboBox for int values
setTypeCellEditor (table);
setAnotherTypeCellEditor (table);
// .. and so on, for all types I need comboboxes
}
大多数类型的 cellEditor 函数如下所示:
private void setTypeCellEditor (JTable jt) {
DefaultCellEditor dce = new DefaultCellEditor (Type.buildComboBox ());
jt.setDefaultEditor (Type.class, dce);
}
这很好用,因为该类型对于该表来说是唯一的,换句话说,我只有一列是布尔类型,一列是 Int,一列是 AnotherType 等。现在的问题是两列都有字符串值,但需要不同的组合框。意思是,上面的代码不起作用,因为它们都是 String.class。
当然,我尝试通过说“在第 10 列我想要这个 ComboBox”来解决这个问题:
private void setYetAnotherTypeCellEditor (JTable jt) {
DefaultCellEditor dce = new DefaultCellEditor (YetAnotherType.buildComboBox ());
if (jt.getColumnModel ().getColumnCount() > 0) {
jt.getColumnModel ().getColumn (9).setCellEditor (dce);
}
}
但是,这似乎不起作用,我不知道为什么。我也试过this guide,但这没有帮助。基本上,我认为 setCellEditor 出于某种原因没有设置单元格编辑器。
很难更具体,因为这背后有很多代码。
【问题讨论】:
-
“例如,一列具有布尔值,因此我创建一个..” .. 复选框 - 将是布尔值的逻辑控件。
-
你可以看看这个例子。stackoverflow.com/questions/14355712/…
-
很难说你遇到了什么问题。为了帮助我们回答您的问题,请尝试发布Minimal, Complete, and Verifiable example。
-
@CedrickClemente 据我所知,这正是我尝试过的,但不起作用。
标签: java swing jtable jcombobox tablecelleditor