Javafx在Class和Combobox

时间:2016-04-15 07:29:05

标签: javafx combobox

我有一个包含字节a-z的javafx类ShowBytes。每个字节定义如下

public static final byte A = (byte) 0x00;

我想填充类中的字节列表并将它们显示在组合框中。有没有办法可以将组合框项链接到类ShowBytes中的字节,这样如果我在组合框中选择A,它仍然代表字节0。

1 个答案:

答案 0 :(得分:1)

您可以创建一个包含字节和String的类,并覆盖toString方法以返回字符串。如果需要,您可以从该类中获取值

e.g。

ObservableList<NamedByteValue> bytes = FXCollections.observableArrayList();

// just filling it with some sample values here
for (char c = 'A'; c <= 'Z'; c++) {
    bytes.add(new NamedByteValue((byte) (c - 'A'), Character.toString(c)));
}

ComboBox<NamedByteValue> comboBox = new ComboBox<>(bytes);
comboBox.valueProperty().addListener((observable, oldValue, newValue) -> System.out.println(newValue.getValue()));
public static class NamedByteValue {

    private final byte value;
    private final String name;

    public NamedByteValue(byte value, String name) {
        this.value = value;
        this.name = name;
    }

    public byte getValue() {
        return value;
    }

    public String getName() {
        return name;
    }

    @Override
    public String toString() {
        return name;
    }

}