java - 当选择一个值时,在 JComboBox 中仅显示一个值

标签 java swing user-interface jcombobox

您好:)我需要更改 JTable 中的 JComboBox 的帮助。我是 GUI 编程和 Swing 的新手,无法解决这个问题:我必须更改 JComboBox 的行为。

您可以在下图中看到组合框。如果选择“Ja”,则应该只有“Nein”作为选项,反之亦然。如果默认设置“Nein”也会很酷。该代码是由上学期的一名学生编写的,我很难像我必须的那样调整组合框。

Table with the ComboBox

这是初始化 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/

相关文章:

java - 一个类如何扩展 Thread 和 Gui?

java - 从主类访问辅助类的成员方法(netbeans 的 swing 编辑器)

java - 如何使用 super() 进行 Frame() 的内部构造?

java - OpenMPI:MPI.Init 卡在 Java 中 - 如何调试?

java - 为什么POJO类需要实现Serializable接口(interface)?

java - 使用 zip4j 使用 Java 解压缩 .zip 文件

java - 使用 JDBC 结果集更新行时出现问题

java - 显示带有使用反射关联的对象名称和方法的工具提示?

user-interface - 是否可以在 GTK 和 Haskell 中为 State monad 中的数据创建 TreeModel?

delphi - 如何在 GUI 更新期间保持 Delphi 应用程序响应?