2016-04-15 10 views
0

Ich habe eine Javafx-Klasse ShowBytes, die Bytes a-z enthält. Jedes Byte wird wie folgt definiertJavafx Verknüpfung zwischen Klasse und Combobox

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

ich die Liste des Bytes in der Klasse füllen will und sie in einer Combobox anzuzeigen. Gibt es eine Möglichkeit, die die Combobox Elemente in die Bytes in der Klasse verknüpfen kann ShowBytes so, dass wenn ich A in der Combobox wählen, noch es Byte 0

+0

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

+0

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

+0

Können Sie diese Klasse nicht ändern und die Daten in eine geeignetere Datenstruktur einfügen? – fabian

Antwort

1

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; 
    } 

} 
+0

Danke Mann. das macht es – tashtoons

Verwandte Themen