Лучший ответ зависит от того, сильно ли меняются эти пары код-метка.Для гибкости:
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);
* 1007.* Опции будут отображаться в соответствии с их
toString()
, но после выбора вы можете легко определить их внутренний код:
FooOption[] selected = options.getSelectedItems();
if (selected.length == 1) {
System.err.println("you have selected " + selected[0].getCode());
}
Если вам не требуется гибкость загрузки их из файла или ресурса classpath по адресупри запуске вы также можете перейти на enum
(просто используйте public enum FooOperation
и инициализируйте все возможные операции в классе enum).Это проще (без файлов), но сложнее расширить (вам нужно будет нажать на код и перекомпилировать, чтобы изменить доступные параметры)