java - 如何在JComboBox中显示信息,但为后端操作选择不同的信息

标签 java swing jcombobox

我有一个与不同操作相关的代码列表。 我想显示易于阅读的信息供用户选择,但是当用户选择他们想要的内容时,当他们单击按钮提交时,后端操作与代码列表相关联。 示例:

 Displayed          | Backend                        
--------------------|------------------------------------------
 Hardware Inventory | "{00000000-0000-0000-0000-000000000001}" 
 Software Inventory | "{00000000-0000-0000-0000-000000000002}" 

最佳答案

最佳答案取决于这些标签代码对是否发生很大变化。为了灵 active :

public class FooOperation {
    private final String label;
    private final String internalCode;
    public FooOperation(String label, String internalCode) {
        this.label = label;
        this.internalCode = internalCode;
    }
    public String toString() { return label; } // human-readable, displayed in CB
    public String getCode() { return internalCode; } // ugly but true
}

然后,您可以在应用程序启动时从文件加载它们,并且给定您以某种方式加载的 FooOperation[],您可以通过

显示它
JComboBox options = new JComboBox(availableOperations);

选项将根据其toString()显示,但一旦选择,您可以轻松确定其内部代码:

FooOption[] selected = options.getSelectedItems();
if (selected.length == 1) {
   System.err.println("you have selected " + selected[0].getCode());
}

如果您不需要在启动时从文件或类路径资源加载它们的灵 active ,您也可以使用 enum (只需使用 public enum FooOperation 和初始化枚举类中所有可能的操作)。这更简单(没有文件),但更难扩展(您必须触摸代码并重新编译以更改可用选项)

关于java - 如何在JComboBox中显示信息,但为后端操作选择不同的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58013900/

相关文章:

java - 在 websphere 中启动应用程序时出现异常 java.lang.NoSuchMethodError : org/w3c/dom/Node. getTextContent()Ljava/lang/String

Java:如何获取调用者函数名

java - 使用 SimpleDateFormat 的问题

java - 禁用的 JComboBox 中更好的可读性/对比度

java - 解析和映射具有动态属性的 JSON 对象

java - @SuppressWarnings 在 SonarQube 中损坏了吗?

java - 从 Java Swing 组件中检索对象

java - 如何不断更新按钮颜色 [JAVA SWING]

java - 获取 JComboBox 项目值

java - jcombobox - 检查模型内容是否更改