2016-05-24 22 views
-1

タグ@FXMLが追加され、SceneBuilderにuseridのtextfieldにfx:id、userpasswordにpasswordfieldが追加されました。 loginControllerコントローラで@FXMLバインドを実行すると例外が発生する

@FXML 
private TextField userid; 
@FXML 
private PasswordField userpassword; 

そして出力Iは、アプリケーション起動時に:

Executing /home/wolacinio/Dokumenty/Programowanie/Jva/Marks/dist/run141945473/Marks.jar using platform /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 
Exception in Application start method 
java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389) 
    at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) 
Caused by: java.lang.RuntimeException: Exception in Application start method 
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917) 
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$1(LauncherImpl.java:182) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: javafx.fxml.LoadException: 
file:/home/wolacinio/Dokumenty/Programowanie/Jva/Marks/dist/run141945473/Marks.jar!/marks/login.fxml:27 

    at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601) 
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2579) 
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441) 
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214) 
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175) 
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148) 
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124) 
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104) 
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097) 
    at marks.Marks.start(Marks.java:22) 
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$8(LauncherImpl.java:863) 
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$7(PlatformImpl.java:326) 
    at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294) 
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) 
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) 
    at com.sun.glass.ui.gtk.GtkApplication.lambda$null$5(GtkApplication.java:139) 
    ... 1 more 
Caused by: java.lang.IllegalArgumentException: Can not set javafx.scene.control.PasswordField field marks.loginController.userpassword to javafx.scene.control.TextField 
    at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167) 
    at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171) 
    at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81) 
    at java.lang.reflect.Field.set(Field.java:764) 
    at javafx.fxml.FXMLLoader.injectFields(FXMLLoader.java:1163) 
    at javafx.fxml.FXMLLoader.access$1600(FXMLLoader.java:103) 
    at javafx.fxml.FXMLLoader$ValueElement.processValue(FXMLLoader.java:857) 
    at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:751) 
    at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2707) 
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527) 
    ... 17 more 
Exception running application marks.Marks 
Java Result: 1 

loginController.javalogin.fxml を私にはすべてがよさそうだと思われます。どうしたの?

+2

これはあなたのエラーです:javafx.scene.control.TextFieldにjavafx.scene.control.PasswordFieldフィールドmarks.loginController.userpasswordを設定できません。 FXMLコードだけでなく、他のJavaコードも表示できますか?あなたのパスワードフィールドをTextFieldに設定しようとしているようです... – XaolingBao

+0

http://pastebin.com/2aqG882Cとhttp://pastebin.com/Pbi1tc09 – wolacinio

+0

本当にありがとうございます。 – XaolingBao

答えて

2

あなたのコードに問題があなたのコントローラで

java.lang.IllegalArgumentException: Can not set javafx.scene.control.PasswordField field marks.loginController.userpassword to javafx.scene.control.TextField 

あなたはFXMLでそれが

<TextField fx:id="userpassword" GridPane.columnIndex="1" GridPane.rowIndex="2" /> 

として宣言されているようにマッピングしながら、両方が同じである必要がありますPASSWORDFIELDようにuserPasswordを言及しているということです同じ例外が発生します。

おかげ

関連する問題