Ich bin neu in JavaFX und muss zwischen zwei Anchor Panes umschalten, die keine Menüleiste haben, aber den Anmelde-Button in der Anchorpane selbst, sollte ich auf Anmeldeformular Formular-Login-Formular umschalten Builder zum Generieren der .FXML-Dateien,Wechsel zwischen zwei Anchor-Bereichen
Meine Frage ist, wie man das auf einfache Weise macht? loginForm with signup button
ERRRO IS
Exception in thread "JavaFX Anwendung Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException bei javafx.fxml.FXMLLoader $ MethodHandler.invoke (FXMLLoader.java:1774) um javafx.fxml.FXMLLoader $ ControllerMethodEventHandler.handle (FXMLLoader.java:1657) um com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent (CompositeEventHandler.java:86) bei com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent (EventHandlerManager.java:238) bei com.sun.javafx.event .EventHandlerManager.dispatchBubblingEvent (EventHandlerManager.java:191) bei com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent (CompositeEventDispatcher.java:59) bei com.sun.javafx.event.BasicEventDispatcher.dispatchEvent (BasicEventDispatcher.java : 58) um com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent (EventDispatchChainImpl.java:114) um com.sun.javaf x.event.BasicEventDispatcher.dispatchEvent (BasicEventDispatcher.java:56) bei com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent (EventDispatchChainImpl.java:114) bei com.sun.javafx.event.BasicEventDispatcher.dispatchEvent (BasicEventDispatcher.java:56) bei com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent (EventDispatchChainImpl.java:114) bei com.sun.javafx.event.EventUtil.fireEventImpl (EventUtil.java:74) bei com .sun.javafx.event.EventUtil.fireEvent (EventUtil.java:49) um javafx.event.Event.fireEvent (Event.java:198) um javafx.scene.Node.fireEvent (Node.java:8413) um javafx.scene.control.Button.fire (Button.java:185) unter com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased (ButtonBehavior.java:182) bei com.sun.javafx.scene.control.skin.BehaviorSkinBase $ 1.handle (BehaviorSkinBase.java:96) bei com.sun.javafx.scene.control.skin.BehaviorSkinBase $ 1.handle (BehaviorSkinBase.java:89) bei com.sun.javafx.event.CompositeEventHandler $ NormalEventHandlerRecord.handleBubblingEvent (CompositeEventHandler.java:218) bei com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent (CompositeEventHandler.java:80) bei com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent (EventHandlerManager.java:238) bei com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent (EventHandlerManager.java:191) bei com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent (CompositeEventDispatcher.java:59) bei com.sun.javafx.event .BasicEventDispatcher.dispatchEvent (BasicEventDispatcher.Java: 58) bei com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent (EventDispatchChainImpl.java:114) bei com.sun.javafx.event.BasicEventDispatcher.dispatchEvent (BasicEventDispatcher.java:56) bei com .sun.javafx.event.EventDispatchChainImpl.dispatchEvent (EventDispatchChainImpl.java:114) bei com.sun.javafx.event.BasicEventDispatcher.dispatchEvent (BasicEventDispatcher.java:56) bei com.sun.javafx.event.EventDispatchChainImpl .dispatchEvent (EventDispatchChainImpl.java:114) bei com.sun.javafx.event.EventUtil.fireEventImpl (EventUtil.java:74) bei com.sun.javafx.event.EventUtil.fireEvent (EventUtil.java:54) um javafx.event.Event.fireEvent (Event.java:198) um javafx.scene.Scene $ MouseHandler.process (Scene.java:3757) um javafx.scene.Scene $ MouseHandler.access $ 1500 (Scene.java: 3485) um javafx.scene.Scene.impl_processMouseEvent (Scene.java:1762) um javafx.scene.Scene $ ScenePeerListener.mouseEvent (Scene.java:2494) um com.sun.javafx.tk.quantum.GlassViewEventHandler $ MouseEventNotification.run (GlassViewEventHandler.java:380) bei com.sun.javafx.tk.quantum.GlassViewEventHandler $ MouseEventNotification.run (GlassViewEventHandler.java:294) bei java.security.AccessController.doPrivileged (native Methode) bei com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda $ handleMouseEvent $ 354 (GlassViewEventHandler.jav a: 416) bei com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock (QuantumToolkit.java:389) bei com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent (GlassViewEventHandler.java:415) bei com.sun.glass.ui.View.handleMouseEvent (View.java:555) um com.sun.glass.ui.View.notifyMouse (View.java:937) um com.sun.glass.ui. win.WinApplication._runLoop (Native Methode) um com.sun.glass.ui.win.WinApplication.lambda $ null $ 148 (WinApplication.java:191) bei java.lang.Thread.run (unbekannte Quelle) verursacht durch: java.lang.reflect.InvocationTargetException bei sun.reflect.NativeMethodAccessorImpl.invoke0 (native Methode) bei su n.reflect.NativeMethodAccessorImpl.invoke (Unbekannte Quelle) um sun.reflect.DelegatingMethodAccessorImpl.invoke (Unbekannte Quelle) um java.lang.reflect.Method.invoke (Unbekannte Quelle) um sun.reflect.misc.Trampoline.invoke (Unknown Source) bei sun.reflect.GeneratedMethodAccessor1.invoke (Unknown Source) bei sun.reflect.DelegatingMethodAccessorImpl.invoke (Unknown Source) bei java.lang.reflect.Method.invoke (Unknown Source) bei sun.reflect .misc.MethodUtil.invoke (Unbekannte Quelle) um javafx.fxml.FXMLLoader $ MethodHandler.invoke (FXMLLoader.java:1771) ... 48 mehr verursacht durch: java.lang.IllegalStateException: Location ist nicht festgelegt. bei javafx.fxml.FXMLLoader.loadImpl (FXMLLoader.java:2434) unter javafx.fxml.FXMLLoader.load (FXMLLoader.java:2409) um localmart.view.AuthController.Register (AuthController.java:22) ... 58 mehr
Main.java
package localmart.view;
import java.io.IOException;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
public class Main extends Application {
private Stage primaryStage;
private AnchorPane mainLayout;
@Override
public void start(Stage primaryStage) {
this.primaryStage = primaryStage;
this.primaryStage.setTitle("Local Mart");
showMainView();
}
private void showMainView() {
FXMLLoader loader = new FXMLLoader();
loader.setLocation(Main.class.getResource("view/login.fxml")); // login
// form
try {
mainLayout = loader.load();
Scene scene = new Scene(mainLayout);
primaryStage.setScene(scene);
primaryStage.show();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
Controller.java
package localmart.view;
import java.io.IOException;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.control.TextField;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.Pane;
public class AuthController {
@FXML AnchorPane anchorPane;
@FXML
private void RegisterStage() throws IOException {
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("reg.fxml"));
Pane registerPane = (Pane) fxmlLoader.load();
try {
anchorPane.getChildren().clear();
anchorPane.getChildren().add(registerPane);
} catch (Exception e) {
e.printStackTrace();
}
}
}
meine Frage, wie Form in main.java laden registrieren und auf Klick Anmeldungen Taste i registerform
i-Set Controller, OnAction, fx wechseln müssen: ID login.fxml
Teilen Sie Ihre fxml-Datei und was meinst du mit wechseln? Verstecke den Anmeldepaneel und zeige die Registrierungsform ??? Oder beide sichtbar halten? –
ich entwarf zwei fxml datei eine ist für login form und andere register form ... wenn ich klick auf die schaltfläche die in login form stage (window) sollte es öffnen register form window –
Also eigentlich willst du eine andere fxml file in laden die gleiche Szene, oder? Momentan rufen Sie die selbe Methode 'showSignUp()' in der Button-Aktion auf, die das gleiche fxml in die Szene lädt. Also, wenn Sie versuchen, was ich gesagt habe, zuerst laden Sie die Login-fxml und laden Sie das Register-Formular in der Schaltfläche Aktion –