您好:)我需要帮助更改JComboBox
中的JTable
。我是GUI编程和Swing的新手,无法解决这个问题:我必须改变JComboBox
的行为。
您可以在下面的图片中看到ComboBox。如果" Ja"被选中应该只是" Nein"作为一种选择,反之亦然。如果" Nein"那也很酷。默认设置。代码是从上学期的一名学生写的,我很难像我一样调整组合框。
这是ComboBox初始化的代码片段。
optionsInteger = new JComboBox<String>();
optionsInteger.addItem("Ja");
optionsInteger.addItem("Nein");
optionsInteger.setSelectedItem(optionsInteger.getItemAt(0));
optionsInteger.setSelectedIndex(1);
optionsInteger.setName("optionsInteger");
在此方法中,ComboBox将插入JTable
:
public void repaintXTable(DefaultTableModel model,JTable table, int xAmount, JScrollPane scrollPane,
JComboBox<String> optionsInteger) {
model.setRowCount(xAmount);
th = table.getTableHeader();
tcm = th.getColumnModel();
tcs = tcm.getColumns();
tcs.nextElement().setHeaderValue("");
tcs.nextElement().setHeaderValue("Lower");
tcs.nextElement().setHeaderValue("Upper");
tc = tcs.nextElement();
tc.setHeaderValue("Integer");
tc.setCellEditor(new DefaultCellEditor(optionsInteger));
for(int i=0;i<xAmount;i++)
{
model.setValueAt("X"+(i+1), i, 0);
}
}
非常感谢你的帮助。
答案 0 :(得分:0)
在您的代码中,此行
optionsInteger.setSelectedItem(optionsInteger.getItemAt(0));
将默认选择设置为第0个元素(Ja)。这一行
optionsInteger.setSelectedIndex(1);
将默认选择设置为第一个元素(Nein)。
设置所选项目或所选索引。没有必要同时做到这两点。
默认情况下,JComboBox不会删除所选元素。如果删除了所选元素,那么所选元素在JTable中的显示方式如何?
如果你真的想这样做,你将不得不创建自己的JComboBox版本。
答案 1 :(得分:0)
。如果&#34; Ja&#34;被选中应该只是&#34; Nein&#34;作为一种选择,反之亦然。
那么你需要两个独立的ComboBoxModels
,一个包含&#34; Nein&#34;另一个包含&#34; Ja&#34;。然后,当您开始编辑单元格时,检查当前值并使用包含其他值的模型。
结帐How to add unique JComboBoxes to a column in a JTable (Java)。此示例显示了如何在要编辑单元格时动态更改模型。
如果&#34; Nein&#34;那也很酷。默认设置。
这与编辑器无关。你只需添加&#34; Nein&#34;将数据添加到模型时到TableModel。