您好:)我需要更改 JTable
中的 JComboBox
的帮助。我是 GUI 编程和 Swing 的新手,无法解决这个问题:我必须更改 JComboBox
的行为。
您可以在下图中看到组合框。如果选择“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);
}
}
非常感谢您的帮助。
最佳答案
在您的代码中,这一行
optionsInteger.setSelectedItem(optionsInteger.getItemAt(0));
将默认选择设置为第零个元素 (Ja)。这一行
optionsInteger.setSelectedIndex(1);
将默认选择设置为第一个元素 (Nein)。
设置所选项目或所选索引。没有必要两者都做。
默认情况下,JComboBox 不会删除所选元素。如果所选元素被删除,所选元素将如何在 JTable 中显示?
如果您确实想这样做,则必须创建您自己的 JComboBox 版本。
关于java - 当选择一个值时,在 JComboBox 中仅显示一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37115033/