2017-07-26 7 views
2

Ich versuche, KeyCode in Zeichenfolge zu konvertieren, und nach dem Lesen aus anderer Hilfe ist .getKeyCode() die Antwort zum Konvertieren von KeyCode in String. Nach dem Hinzufügen gibt es jedoch einen Fehler, der besagt, dass das Symbol ".getKeyCode()" nicht gefunden werden kann. Es gibt einen weiteren KeyEvent-Import, aber wenn dieser Import statt des aktuellen verwendet wird, verschwindet der Fehler, aber das Programm kann nicht ausgeführt werden.Kann das Symbol event.getKeyCode() nicht finden

Das ist meine Controller-Klasse:

package keyboardrecorder; 

import javafx.fxml.FXML; 
import javafx.scene.control.TextArea; 
import javafx.scene.input.KeyEvent; 

public class Controller { 

    @FXML 
    private TextArea consoleKeyTyped; 
    private TextArea consoleKeyPressed; 
    private TextArea consoleKeyReleased; 

    public void outputKeyTyped(KeyEvent event) { 
     consoleKeyTyped.setText(consoleKeyTyped.getText() + event.getCharacter()); 
    } 

    public void outputKeyPressed(KeyEvent event) { 
     consoleKeyPressed.setText(consoleKeyPressed.getText() + event.getKeyCode()); 
    } 

    public void outputKeyReleased(KeyEvent event) { 

    } 

} 

Das ist meine FXML Datei:

<?xml version="1.0" encoding="UTF-8"?> 
<?import java.lang.*?> 
<?import java.util.*?> 
<?import javafx.scene.*?> 
<?import javafx.scene.control.*?> 
<?import javafx.scene.layout.*?> 

<AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="keyboardrecorder.Controller"> 
    <children> 
     <TabPane prefHeight="400.0" prefWidth="600.0" tabClosingPolicy="UNAVAILABLE"> 
     <tabs> 
      <Tab text="Key Typed"> 
      <content> 
       <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0"> 
        <children> 
         <TextArea fx:id="consoleKeyTyped" editable="false" onKeyTyped="#outputKeyTyped" prefHeight="368.0" prefWidth="600.0" wrapText="true" /> 
        </children> 
        </AnchorPane> 
      </content> 
      </Tab> 
      <Tab text="Key Pressed"> 
      <content> 
       <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0"> 
        <children> 
         <TextArea fx:id="consoleKeyPressed" editable="false" onKeyPressed="#outputKeyPressed" prefHeight="368.0" prefWidth="600.0" wrapText="true" /> 
        </children> 
        </AnchorPane> 
      </content> 
      </Tab> 
      <Tab text="Key Released"> 
       <content> 
       <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0"> 
        <children> 
         <TextArea fx:id="consoleKeyReleased" editable="false" onKeyReleased="#outputKeyReleased" prefHeight="368.0" prefWidth="600.0" wrapText="true" /> 
        </children> 
        </AnchorPane> 
       </content> 
      </Tab> 
     </tabs> 
     </TabPane> 
    </children> 
</AnchorPane> 
+0

Etwas stimmt hier nicht: '@FXML private TextArea consoleKeyTyped; private TextArea consoleKeyPressed; private TextArea consoleKeyReleased; '. Sie müssen entweder alle mit '@ FXML' beginnen oder ein Komma' 'dazwischen verwenden. – Sedrick

+0

Ich bin überrascht, dass Sie keine "NullPointerException" bekommen. – Sedrick

Antwort

Verwandte Themen