stellt Sie eine Klasse erstellen, könnte das Byte und ein String
und Überschreibung die toString
Methode, die Zeichenfolge zurückzugeben. Sie können den Wert von dieser Klasse erhalten, wenn er benötigt wird.
z.B.
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;
}
}
Was Sie versuchen zu tun? Zeigen Sie die Variablennamen in der 'ComboBox', aber machen Sie den Elementtyp 'Byte'? Sind diese Werte sogar einzigartig? Warum willst du das machen? Was ist der Vorteil der Verwendung von "Byte" als Elementtyp, anstatt das Element einfach in "Byte" zu konvertieren, wenn es verwendet wird? – fabian
Die Bytes werden über serielle Kommunikation an eine Entwicklungskarte zu einem Gerät gesendet. Die Bytes werden vom Gerät als Befehl interpretiert. Ist es möglich, eine Funktion namens getbytes (String Bytename) zu haben, die das Byte von der Klasse zurückgibt. – tashtoons
Können Sie diese Klasse nicht ändern und die Daten in eine geeignetere Datenstruktur einfügen? – fabian