Heyho Leute,
hab ein kleines Problem, finde allerdings nicht heraus wieso es entsteht.
Es geht darum, das ich in einer JavaFX Application, in einem Controller durch ein KeyPressedEvent einen Key "abfange" und diesen dann in einer anderen Klasse abspeichern möchte. Allerdings bekomme ich jedes mal eine Exception geworfen, selbst wenn ich den KeyCode mit .toString() als String übergebe.
Der Fehler tritt immer an der Stelle auf an der ich den try-catch eingefügt habe.
Folgender verkürzter Aufbau:
EDIT:
Ich hab noch ein wenig rumm probiert, aber ich kappiers einfach nicht, hier mal ein Beispiel:
Selbst wenn ich den String so weit auslagere und immer weiter übergebe, scheiters an dem schicken in die andere Klasse. :rtfm:
(Natürlich habe ich hier die Testklasse auf String anstatt KeyCode umgeschrieben)
Mfg
Fabian
hab ein kleines Problem, finde allerdings nicht heraus wieso es entsteht.
Es geht darum, das ich in einer JavaFX Application, in einem Controller durch ein KeyPressedEvent einen Key "abfange" und diesen dann in einer anderen Klasse abspeichern möchte. Allerdings bekomme ich jedes mal eine Exception geworfen, selbst wenn ich den KeyCode mit .toString() als String übergebe.
Der Fehler tritt immer an der Stelle auf an der ich den try-catch eingefügt habe.
Folgender verkürzter Aufbau:
Java:
public class FXMLController implements Initializable {
Testklasse main;
Dialog erstellen....
@FXML
private void bindDialog( ) {
...
main = new Testklasse();
dialog.show();
}
@FXML
private void pressKey() {
tfKeyBind.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
(Wenn ich hier eine Sout mit event.getCode().toString setze, wird genau das ausgegeben,
was ich nicht in die sendKey Methode übergeben kann ohne das einen Fehler entsteht,
selbst wenn ich statt KeyCode String verwende)
sendKey(event.getCode());
}
});
}
private void sendKey(KeyCode key) {
try{
main.setKey(key);
} catch (Exception e) {
System.out.println("fehler");
}
}
}
Java:
public class Testklasse {
private KeyCode key = null;
public void setKey(KeyCode key) {
this.key = key;
}
}
EDIT:
Ich hab noch ein wenig rumm probiert, aber ich kappiers einfach nicht, hier mal ein Beispiel:
Java:
@FXML
private void pressKey() {
tfKeyBind.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
System.out.println(event.getCode().toString()); //Klappt
String test = event.getCode().toString(); // Klappt
System.out.println(test); // Klappt, gibt genau das aus was ich haben möchte
test(test); // Klappt
tfKeyBind.setText(event.getCode().toString());
}
});
}
private String testString;
private void test(String text) {
testString = text; //Klappt
System.out.println(testString); //Klappt, immer noch genau das was ich haben möchte
main.setKey(testString); // Wirft Exception
}
Selbst wenn ich den String so weit auslagere und immer weiter übergebe, scheiters an dem schicken in die andere Klasse. :rtfm:
(Natürlich habe ich hier die Testklasse auf String anstatt KeyCode umgeschrieben)
Mfg
Fabian
Zuletzt bearbeitet: