KeyCode in anderer Klasse speichern

expensne

Mitglied
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:
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:

expensne

Mitglied
Hab das Problem gelöst, habe die Testklasse jetzt in der Controller Klasse deklariert und nicht mehr in der Methode bindDialog().
Das speichern des KeyCode funktioniert nun, allerdings nicht das Speichern eines Strings.

Hier das Problem:

Java:
public class FXMLController implements Initializable {

    Testklasse main = new Testklasse();

    @FXML
    private void bindDialog(String title) {
       ...
    }

    @FXML
    private void test() {
        main.setText("1234");
    }
}

Java:
public class SpeicherAuslage {

    private String text;
    private KeyCode key;

    public void setText(String text) {
        this.text = text;
        System.out.println(text);
        System.out.println("saved " + this.text);
    }

    public String getText() {
        return text;
    }
    
    public void newLine() {
        System.out.println("ok");
        System.out.println("newLine :: " + text);
    }
}

Die Sout Ausgaben sind diese:
1234
saved 1234
ok
newLine :: null

Plötzlich ist der Text String wieder null anstatt "1234", ohne das weitere Zugriffe darauf stattfinden, jemand eine Idee wieso?
 
Zuletzt bearbeitet:

expensne

Mitglied
Alles nochmal neu geschrieben und es weitesgehend vereinfacht.
Das ist jetzt der komplette Code, der nicht so will wie er soll.

Java:
public class FXMLDocumentController implements Initializable {

    private String weapon;
    private KeyCode key;
    
    @FXML 
    private TextField tfKeyPressed;

    @FXML
    private void handleGlockAction(ActionEvent event) {
        try {
            newDialogWindow("glock");
        } catch (Exception ex) {
            Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    @FXML
    private void newDialogWindow(String name) throws Exception {
        Stage dialog = new Stage();
        Parent page = (Parent) FXMLLoader.load(getClass().getResource("FXMLbind.fxml"));
        Scene scene = new Scene(page);
        dialog.setScene(scene);
        dialog.setTitle("Bind: " + name);
        
        weapon = name;
        System.out.println("-> " + weapon);
        
        dialog.show();
    }
    
    @FXML
    private void handleKeyPressed(KeyEvent event) {
        key = event.getCode();
        tfKeyPressed.setText(event.getCode().toString());
        
        System.out.println("--> " + key);
        System.out.println("--> " + weapon);
    }

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // TODO
    }

}

Ausgabe:
-> glock (öffnen des Dialogs, da ist der String noch gespeichert)
--> D
--> null (erneute Ausgabe, bei Änderung der Taste, String plötzlich gelöscht)
--> A
--> null
...


Also die Tasten stimmen immer, aber der weapon String wird nicht gespeichert. Ich bin echt ratlos. ???:L
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
kowa KeyCode aus einem String Allgemeine Java-Themen 2
EinNickname9 Best Practice Singleton und Singleton mit Instanz zu anderer Klasse -Pattern Allgemeine Java-Themen 30
Y ImagePanel von anderer Klasse in eine MainFrame Klasse hinzufügen. Allgemeine Java-Themen 1
H Arraylist mit anderer ArrayList überschreiben Allgemeine Java-Themen 17
cool_brivk24 Variablen abfragen von Boolean von anderer Klasse Allgemeine Java-Themen 12
E Swing Buttons auf knopfdruck(anderer Button) erstellen Allgemeine Java-Themen 6
magdaStone Logikproblem Umschalten von booleans in anderer Klasse Allgemeine Java-Themen 7
A Collections Inhalt einer Liste mit Inhalt anderer Liste vergleichen ? Allgemeine Java-Themen 7
K Input/Output String aus einer Datei einlesen und in anderer Datei speichern Allgemeine Java-Themen 20
J Jar Datei mit anderer .jar einlesen Allgemeine Java-Themen 4
2 Joda Time - Localtime mit anderer Zeit vergleichen? Allgemeine Java-Themen 1
F Eigene .jar mit anderer .jar öffnen Allgemeine Java-Themen 7
L Klassen Konstruktor soll Objekt anderer Klasse erzeugen Allgemeine Java-Themen 2
B Benutzeroberfläche in anderer Klasse aufrufen Allgemeine Java-Themen 5
E Auf Java-Objekt aus anderer Instanz zugreifen Allgemeine Java-Themen 26
A Klassen String Array in anderer Klasse verwenden Allgemeine Java-Themen 11
D von einer Klasse auf Komponente in anderer Klasse zugreifen Allgemeine Java-Themen 5
R Klasse über Button Event in anderer Klasse informieren Allgemeine Java-Themen 11
E Variablen anderer Klassen auslesen (nur Name bekannt) Allgemeine Java-Themen 4
M Datumsformat anderer Locales Allgemeine Java-Themen 3
N iText Problem beim verlinken anderer PDFs Allgemeine Java-Themen 2
B Thread beenden (von anderer Klasse) Allgemeine Java-Themen 20
R Java Text anderer Schriftart einlesen Allgemeine Java-Themen 2
G auf variable in anderer class zugreifen Allgemeine Java-Themen 2
M Thread aus anderer VM starten bzw. stoppen Allgemeine Java-Themen 7
Q daten propertie datei aus anderer applikation Allgemeine Java-Themen 6
J Zugriff auf Map in anderer Klasse Allgemeine Java-Themen 2
S anderer Mime Type bei xml-Datei Allgemeine Java-Themen 2
G Objekt in anderer Klasse clonen Allgemeine Java-Themen 3
S GetColor? anderer befehl Allgemeine Java-Themen 13
J Ausgewähltes File in anderer Klasse verfügbar machen? Allgemeine Java-Themen 3
T Klasse aus anderer Datei ausführen Allgemeine Java-Themen 9
lin Auf Methode von anderer Klasse zugreifen Allgemeine Java-Themen 5
M Verfügbarkeit von Variablen anderer Klassen Allgemeine Java-Themen 2
T Anderer Zeichensatz für String Allgemeine Java-Themen 35
J setTitle aus anderer Klasse aufrufen/ändern Allgemeine Java-Themen 4
H textfeldausgabe aus anderer Klasse Allgemeine Java-Themen 4
M Methodenübersicht einer Klasse einsehen Allgemeine Java-Themen 14
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
torresbig Klasse mit extends Calendar über Methoden ändern (Hirnblockade) Allgemeine Java-Themen 7
A Zweite Service Klasse beim Kompilieren Allgemeine Java-Themen 6
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
Atten007 Java-Klasse auf macOS entpacken? Allgemeine Java-Themen 2
M Klasse durch Klassen Aufteilung verbessern, aber wo? Allgemeine Java-Themen 1
E Eine Methode einer extendeten Klasse deakitivieren Allgemeine Java-Themen 12
H Kombination Interface und Abstrakte Klasse bei Generics Allgemeine Java-Themen 3
Lukas2904 Schleife mit ansteuerung einer Klasse Allgemeine Java-Themen 5
d.lumpi Aus Einer Klasse auf ein Objekt einer anderen Klasse Zugreifen Allgemeine Java-Themen 1
missy72 Klassen Eigene Klasse MessageWindow ähnlich der Alert Klasse Allgemeine Java-Themen 2
Drachenbauer wie kann ich alle instanzen einer Klasse durchsehen, ohne, dass diese in einer Liste erzeugt wurden? Allgemeine Java-Themen 11
kanywayne Java programmieren: Polynom Klasse Allgemeine Java-Themen 4
L Die abzuleitende Klasse als Parameter übergeben Allgemeine Java-Themen 4
S Klassen Einfügen von unbekannter menge an Variablen in eine Klasse mithilfe von ASM Allgemeine Java-Themen 5
C Klasse mit Mockito simulieren Allgemeine Java-Themen 9
P einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen Allgemeine Java-Themen 2
S Wenn eine Klasse zwei Interfaces mit derselben Methodensignatur implementiert: welche wird aufgerufen? Allgemeine Java-Themen 15
Thallius Key/Value Table in Klasse einlesen Allgemeine Java-Themen 14
S static in Interface und Klasse Allgemeine Java-Themen 2
W Was genau sind IOTools? Kann ich stattdessen nicht die Scanner Klasse verwenden? Allgemeine Java-Themen 3
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
D javassist API Klasse in MethodCall ermitteln Allgemeine Java-Themen 8
kodela Klasse mit "gezipten" Daten Allgemeine Java-Themen 6
J Builder Klasse mit Lombok bauen Allgemeine Java-Themen 2
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
M [SOAP] - Klasse aus WSDL ausschließen Allgemeine Java-Themen 2
N Generic Type einer Generischen Klasse während der Laufzeit bekommen Allgemeine Java-Themen 2
X Klassen Klasse BreakIterator Allgemeine Java-Themen 6
R Arraylist in andere Klasse leiten und bearbeiten Allgemeine Java-Themen 10
kodela Klassen Klasse "vergisst" ihre Daten Allgemeine Java-Themen 2
pkm Kann eine ServerSocket-Klasse nicht stateful sein? Allgemeine Java-Themen 4
E Socket Dynamische Klasse von ObjectOutputStream lesen. Allgemeine Java-Themen 8
M Matcher-Klasse findet match nicht Allgemeine Java-Themen 6
S Seltsames Ergebnis mit Date-Klasse Allgemeine Java-Themen 6
J int Werte in einer anderen Klasse in Arrays speichern Allgemeine Java-Themen 3
D Warum kann ich eine (deflaut) Klasse aus einer Libary in einem anderen Projekt benutzen? Allgemeine Java-Themen 3
Neoline Klassen Singleton Klasse buchmanager Allgemeine Java-Themen 19
M Kapselung Modellierung von Intervallen: Klasse Interval Allgemeine Java-Themen 4
B Übernommene Variablen(werte) aus der Main-Klasse ändern? Allgemeine Java-Themen 9
ReinerCoder Klasse kann nicht public deklariert werden Allgemeine Java-Themen 2
ReinerCoder Methode einer Klasse meldet Fehler "misplaced construct(s)" Allgemeine Java-Themen 13
I Collection - contains-Methode überschreiben (anonyme innere Klasse) Allgemeine Java-Themen 4
X Klassen File-Klasse wird als Directory markiert Allgemeine Java-Themen 8
S Methoden Liste soll Methode aus innerer Klasse aufrufen Allgemeine Java-Themen 4
J IndexOutOfBoundsException bei der Nutzung der Klasse Message von mime4j Allgemeine Java-Themen 5
P Array einer abstrakten Klasse Allgemeine Java-Themen 4
J Zugriff auf erstellte Objekte einer Klasse von einer Klasse ausserhalb Allgemeine Java-Themen 3
kodela Dynamisches Array in einer Klasse Allgemeine Java-Themen 5
M Was geschieht mit Java-Klasse, die aus ArrayList entfernt wird? Allgemeine Java-Themen 10
perlenfischer1984 Lombok Builder soll andere Klasse bauen Allgemeine Java-Themen 4
perlenfischer1984 Mit Lombok Builder Felder in Super Klasse füllen Allgemeine Java-Themen 12
T String aus While Schleife für ganze Klasse sichtbar machen Allgemeine Java-Themen 5
K Best Practice Auf die Klasse zugreifen im erzeugten ActionListener Allgemeine Java-Themen 2
K Mit Button neue Klasse öffnen Allgemeine Java-Themen 9
J Reflection mit Klasse und Subklasse Allgemeine Java-Themen 11
C Classpath Neue Klasse über einen Button ausführen Allgemeine Java-Themen 3
P mehrer Verschiedene Objekte in einer Klasse erstellen. Allgemeine Java-Themen 4
A Java Klasse auf Tomcat während der Laufzeit austauschen Allgemeine Java-Themen 1
C Abstrakte Klasse, lokale Variable-Problem Allgemeine Java-Themen 1
N Vererbung Design-Problem mit vorhandenen, von der Klasse unabhängigen Methoden Allgemeine Java-Themen 12

Ähnliche Java Themen

Neue Themen


Oben