2017-11-05 5 views
-1

ステータスイベントを作成しようとしていますが、ステータスラベルボタンのテキストを変更しようとしていますが、 "Controller 'MainController'イベントスロット 'PassPhrase'はありません。これは新しいものであり、何をすべきかは全く分かりません。コントローラー 'MainController'にイベントスロット 'PassPhrase'がありません

また、私のpassPhraseフィールドに入力されたテキストを、passと呼ばれる変数の下に保存しておきたいと思います。ありがとう。

This is my mainController 

package application; 

import java.awt.Label; 
import java.awt.TextField; 
import java.awt.event.ActionEvent; 

import javafx.fxml.FXML; 

public class MainController { 
@FXML 
private Label lblStatus; 


@FXML 
private TextField txtPassPhrase; 


String pass = txtPassPhrase.getText(); 

public void PassPhrase (ActionEvent event) { 
    if (txtPassPhrase.getText().isEmpty()) { 
     lblStatus.setText("You must Enter in Characters"); 
    } else { 
     lblStatus.setText("Your PassPhrase has been accepted."); 


    } 
    } 
} 

は、ここに私のパスフレーズのFXML

<?xml version="1.0" encoding="UTF-8"?> 

<?import javafx.scene.control.Button?> 
<?import javafx.scene.control.Label?> 
<?import javafx.scene.control.TextField?> 
<?import javafx.scene.layout.AnchorPane?> 
<?import javafx.scene.text.Font?> 

<fx:root prefHeight="150.0" prefWidth="500.0" type="AnchorPane" 
xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" 
fx:controller="application.MainController"> 
    <children> 
     <Button layoutX="210.0" layoutY="103.0" mnemonicParsing="false" 
onAction="#PassPhrase" text="Submit"> 
     <font> 
      <Font size="18.0" /> 
     </font> 
     </Button> 
     <TextField fx:id="txtPassPhrase" layoutX="152.0" layoutY="56.0" 
prefHeight="39.0" prefWidth="199.0" promptText="Enter in a PassPhrase"> 
     <font> 
      <Font size="18.0" /> 
     </font> 
     </TextField> 
     <Label fx:id="lblStatus" layoutX="80.0" layoutY="14.0" 
prefHeight="17.0" prefWidth="423.0" text="Press submit once you enter in a 
PassPhrase" textFill="#e05858"> 
     <font> 
      <Font size="18.0" /> 
     </font> 
     </Label> 
    </children> 
</fx:root> 

と私のメインクラスです

package application; 

    import javafx.application.Application; 
    import javafx.fxml.FXMLLoader; 
    import javafx.stage.Stage; 
    import javafx.scene.Parent; 
    import javafx.scene.Scene; 
    import javafx.scene.layout.BorderPane; 


public class Main extends Application { 
@Override 
public void start(Stage primaryStage) { 
    try { 

     Parent root = 
FXMLLoader.load(getClass().getResource("/application/passPhrase.fxml")); 
     Scene scene = new Scene(root,400,400); 




scene.getStylesheets().add(getClass().getResource("application.css") 
.toExternalForm()); 
      primaryStage.setScene(scene); 
      primaryStage.show(); 
     } catch(Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    public static void main(String[] args) { 
     launch(args); 
    } 
} 
+0

あなたは 'JavaFX'コントロールと' AWT'コントロールを混在させているようですか? – Sedrick

答えて

0

あなたimports `へのJavaFXの」輸入を変更してみてください。

import javafx.scene.control.Label; 
import javafx.scene.control.TextField; 
import javafx.event.ActionEvent; 
関連する問題