Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Wenn man in Scene Builder eine Aktion hinterleg z.B. "on mouse clicket" oder "on mouse entered" wie findet man heraus welcher Befehl man benutzt um diesen Wert abzufragen? Ich arbeite mit Eclipse. Welchen view mache ich auf? UNd was muß ich anklicken? Und wie interpretiere ich dann den Eintrag?
eigendlich müßte diese Aktion im ausgeführten Fenster etwas auslösen. Das tut es nicht!! Ich habe herausgefunden das wenn Library für den scenebuilder die Java FX SDK im Builderconfiguration nicht auftaucht (sozusagen nicht addiert wurde) passiert nix. In meinem Builderphat liegt die Jre system Library und die Java FX SDK. fehlt mir noch etwas?
Exception in Application start method
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
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$155(LauncherImpl.java:182)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: MouseDragEvent
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getDeclaredMethods(Unknown Source)
at javafx.fxml.FXMLLoader$ControllerAccessor.addAccessibleMethods(FXMLLoader.java:3473)
at javafx.fxml.FXMLLoader$ControllerAccessor.access$4000(FXMLLoader.java:3305)
at javafx.fxml.FXMLLoader$ControllerAccessor$1.run(FXMLLoader.java:3424)
at javafx.fxml.FXMLLoader$ControllerAccessor$1.run(FXMLLoader.java:3417)
at java.security.AccessController.doPrivileged(Native Method)
at javafx.fxml.FXMLLoader$ControllerAccessor.addAccessibleMembers(FXMLLoader.java:3416)
at javafx.fxml.FXMLLoader$ControllerAccessor.getControllerMethods(FXMLLoader.java:3376)
at javafx.fxml.FXMLLoader$Element.getControllerMethodHandle(FXMLLoader.java:562)
at javafx.fxml.FXMLLoader$Element.processEventHandlerAttributes(FXMLLoader.java:599)
at javafx.fxml.FXMLLoader$ValueElement.processEndElement(FXMLLoader.java:770)
at javafx.fxml.FXMLLoader.processEndElement(FXMLLoader.java:2823)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2532)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409)
at applicationunifenster.Main.mainWindow(Main.java:28)
at applicationunifenster.Main.start(Main.java:22)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
... 1 more
Caused by: java.lang.ClassNotFoundException: MouseDragEvent
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 28 more
Exception running application applicationunifenster.Main
Wenn Dummheit weh tut dann müßte ich jetzt AUA sagen. Ok man klickt auf das Dreieck oder auf das Unterstrichne(was man wenn man sich über etwas Ärgert gerne vergist) UNd stellt fest zu diesem MouseDragEvent muß man natürlich das entsprechende Import für diese Funtion und für JavaFX aussuchen.
für die OnMausClickEvent wird vorgeschlagen changeMouseEvent Jaxa FX ausgewählt und importiert . Und dann steht oben
ps. der SceneBuilder ist somit zwar ne schöne Möglichkeit alle benötigte Komponenten zusammenzustellen. Die möglichkeit die benötigten Abfragekomponenten die man im Menuepunkt View >show sample controller skeleton dort gefundenen (ActionsEvent) durch die abweichenden Events immer ersetzt werden müssen. (also außer ActionEvent ) immer andere Events eingesetzt werden müssen. (keine Übereinstimmung der wirklich benötigten Events dargestellt werden)
Dein Satz ist ziemlich wirr, aber ich verstehe es so, dass du sagst der Sample Code im Scenebuilder würde falsch erstellt, da die Eventtypen nicht stimmen.
Falls du es so meintest kann ich dem nicht zustimmen.
Genau in meinem wird immer egal welches Actionelement eingerichtet wird;im View des SceneBuilders immer nur eine onActionevent angezeigt aber im FXML Dokument View das richtige Event, das man dann im WindowsController jeweils mit Copy und Paste den Wert onAction überschreiben muß. Zeigt dein SceneBuilder view Vorschau auf WindowControll Elemente alles richtig an?
Im Programm SceneBuilder gibt es unter view ein Fenster "show sample controller skeleton" dort sollen alle Elemente aufgeführt werden die man im WindowsController einsetzen muß damit das FXML Dokument nicht über fehlende Elemente mekkert. Praktisch. Nur wenn man mehrere Events in SceneBuilder für ein Element einrichtet z.B. onMouseClicket onAction onTextChange wird für dieses Element dort nur eine Methode erstellt die immer onAction ist.Kopiert man also alle Elemente aus diesem View in das WindowControll in Eclipse hat man dort auch nur onAktion Methoden und komischer weise meckert in Eclipse Fenster das FXML Dokument nicht und umgekehrt der WindowController nicht über fehlenden z.B. @FXML
void oactwert4(MouseDragEvent event)
und akzeptiert ohne Meckern
@FXML
void oactwert4(ActionEvent event)
Scene Builder
Version 8.3.0
Date: 2016-12-16
Java Version: 1.8.0_111-b14, Oracle Corporation
Eine Prüfung ob du auch den richtigen Eventtyp in deinem Code hast ist eine Codeanalyse deiner IDE. IntelliJ IDEA prüft bspw. ob der Typ der Events korrekt ist und falls dies nicht der Fall ist meldet es (jedoch nicht als Error):
Incompatible event handler argument: javafx.event.ActionEvent is not assignable from javafx.scene.input.MouseEvent less... (Strg+F1)
Inspection info: This inspection reports event handler issues, including incompatible argument type, ambiguous event handler method, and incorrect return type.
Wenn du aber jetzt sowas machst:
Wird nur eine Methode generiert. Ob das sinnvoll ist die gleiche Methode für verschiedene Events zu nutzen weiß ich nicht. Ich weiß auch nicht was passieren würde, wenn man die fehlende Methode in seinen Controller einfügt und somit eine Überladene Funktion hat. Müsste man ausprobieren.
Hahaha, ok das ist für einen 32Bit Laptop XP nicht kompatibel.Muß also warten bis ich meinen PC benutzen kann. Eine Lösung die uns dazu zwingd ein 64Bit Laptop zu kaufen. Oder?