当前位置: 首页 > 知识库问答 >
问题:

根据Java中的控制值在列表中选择特定值

徐唯
2023-03-14

我有一个字符串列表,它有{“val1”、“val2”、“val3”、“val4”}等值,我有三个不同的组合框。每个组合框有5个以上的项。

现在,我只想从列表中选择一个具有组合框项目不同组合的值。我尝试过使用if-else和switch语句,但它的过程非常繁琐。那么,解决这类问题的最佳方法是什么呢?GUI部分的屏幕截图。

GUI

提前感谢。

我有一个像这样的长长的嵌套开关盒

 switch(comboBox1_value)
   {
            case "X1" :
                switch(comboBox2_value)
                {
                case "X1":
                    // select val1 from list
                    break;
                case "X2":
                    // select val2 from list
                    break;

                case "K1":
                    // select val3 from list
                    break;
                case "K2":
                    // select val1 from list
                    break;
                }
           .
           .
           .
    }

共有1个答案

储承
2023-03-14
public class Main {

    private static String[] X_VALUES = {"x1","x2","x3","x3",};
    private static String[] Y_VALUES = {"y1","y2","y3","y3",};
    private static String[] Z_VALUES = {"z1","z2","z3","z3",};

    public static void main(String[] args) {

        JComboBox<String> x_c = new JComboBox<>(X_VALUES);
        JComboBox<String> y_c = new JComboBox<>(Y_VALUES);
        JComboBox<String> z_c = new JComboBox<>(Z_VALUES);

        java.util.List<String> l = new ArrayList<>();

        Stream.of(X_VALUES)
                .forEach(x -> {
                    Stream.of(Y_VALUES)
                    .forEach(y -> {
                        Stream.of(Z_VALUES)
                        .forEach(z -> {
                            l.add("X:" + x + ", Y: " + y + ", Z: " + z);
                        });
                    });
                });

        JList<String> list = new JList<>(l.toArray(new String[l.size()]));

        ActionListener al = e -> { list.setSelectedValue("X:" + x_c.getSelectedItem() + ", Y: " + y_c.getSelectedItem() + ", Z: " + z_c.getSelectedItem(), true); };

        x_c.addActionListener(al);
        y_c.addActionListener(al);
        z_c.addActionListener(al);

        JFrame f = new JFrame();
        JPanel p = new JPanel();
        p.add(x_c);
        p.add(y_c);
        p.add(z_c);
        p.add(new JScrollPane(list));

        f.setContentPane(p);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.pack();
        f.setVisible(true);

    }

}
 类似资料:
  • 问题内容: 我有这样的桌子 我需要选择何时类型为0,何时类型为1,何时类型为N … 我怎样才能做到这一点? 问题答案:

  • 问题内容: 从pandas数据框中选择所有行的最简单方法是什么?谁的符号在整个表中恰好出现两次?例如,在下表中,我想选择在[‘b’,’e’]中带有sym的所有行,因为这些符号的value_counts等于2。 问题答案: 我认为您可以按列和值使用: 第二个解决方案使用与布尔索引: 并用最快的解决方案和:

  • 因此,问题实际上是: 我创建(从熊猫文档直接复制粘贴)数据框: 这将创建一个像这样的DataFrame:(其中最左边的列实际上是索引) 然后我想给我的名字分配col2和row1的值,即4。但是我想根据col1中的值来做这件事(因为我知道这个值)。所以它看起来或多或少像这样: 我知道这没有意义,但也许有人理解这个问题,并提出了一个提示:)可能这是非常容易做到的,但我现在可以把我的头包在所有的. lo

  • 我有一张地图,如下图所示,其中有一个键,值的类型为: 我想在之前的地图上再添加一个地图,这样就有一个键,它的值就是上面的地图。这是正确的数据结构吗?我们如何实现它? 我想要像下面这样的东西 如上所示,仅向映射引入了一个新键,其值为上一个映射。 所以它就像一张

  • 本文向大家介绍Regular Expressions 根据特定位置的单词从列表中选择特定行,包括了Regular Expressions 根据特定位置的单词从列表中选择特定行的使用技巧和注意事项,需要的朋友参考一下 示例 我有以下清单: 我想选择使用Yaron姓氏的人的名字。 因为我不在乎它是什么数字,所以我将其设置为任意数字,并从行首开始将其匹配的点和空格放在下面,如下所示:^[\d]+\.\s

  • 问题内容: 是否有可能以任何方式(无脚本)聚合存储在表单元格中的列。 基本上我想在这里实现的是,如果我有下表 我可以做点什么吗 我可以选择在python中编写脚本,我知道该如何实现。但是我很想知道是否可以在任何版本的SQL中使用此信息,如果信息不足,请告诉我。 问题答案: 不可以,您不能使用来自另一个查询结果的列名。 您将需要 在自己的代码中 执行此 操作 ,并将结果作为完整查询发送到Amazon