私はJavaFXを使い慣れていないので、メニューバーを持たないアンカーパネルを2つ切り替える必要がありますが、アンカーパネル自体にサインアップボタンがあります。登録フォームに切り替える必要があります。ビルダー.FXMLファイルを生成する、2つのアンカーパネルを切り替える
私の質問は簡単な方法でこれを行う方法ですか? javafx.fxml.FXMLLoaderで にjava.lang.reflect.InvocationTargetException:loginForm with signup button
ERRROは java.lang.RuntimeException "JavaFXのアプリケーションスレッド" スレッドで
例外で$ MethodHandler.invoke(FXMLLoader.java:1774)at javafx.fxml.FXMLLoader $ ControllerMethodEventHandler.handle(FXMLLoader.java:1657) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) でcom.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) com.sun.javafx.eventで com.sun.javafx.event.BasicEventDispatcher.dispatchEventで.EventHandlerManager.dispatchBubblingEvent com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)で(EventHandlerManager.java:191) (BasicEventDispatcher.java :58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javaf でx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) com.sun.javafx.event.BasicEventDispatcher.dispatchEventでcom.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) ( com.sun.javafx.event.EventUtil.fireEventImplでBasicEventDispatcher.java:56) でcom.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) (EventUtil.java:74) コムで.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49): javafx.event.Event.fireEvent(Event.java:198)at javafx.scene.Node.fireEvent(Node.java:8413)at javafx.scene.control.Button.fire(Button.java:185)at com.sun.javafx.scene.control.skin.BehaviorSkinBase $ 1.handleでcom.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182) (BehaviorSkinBase.java:96) でcom.sun.javafx.scene.control.skin.BehaviorSkinBase $ 1.handle(BehaviorSkinBase.java:89) でcom.sun.javafx.event.CompositeEventHandler $ NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218) でで com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)で(CompositeEventHandler.java:80) 0 com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) でcom.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) com.sun.javafx.eventで.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher。Javaの:58) でcom.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) で コムで com.sun.javafx.event.EventDispatchChainImplで.sun.javafx.event.EventDispatchChainImpl.dispatchEvent com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)で(EventDispatchChainImpl.java:114) .dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)atjavafx.scene.Scene $ MouseHandler.process $(Scene.java:3757)at javafx.scene.Scene $ MouseHandler.access $ 1500(Scene.java:3987): でjavafx.event.Event.fireEvent(Event.java:198) 3485)at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)at javafx.scene.Scene $ ScenePeerListener.mouseEvent(Scene.java:2494)at com.sun.javafx.tk.quantum.GlassViewEventHandler $ でjava.security.AccessController.doPrivileged(ネイティブメソッド)で com.sun.javafx.tk.quantum.GlassViewEventHandler $ MouseEventNotification.run(GlassViewEventHandler.java:294) でMouseEventNotification.run(GlassViewEventHandler.java:380) com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda $ handleMouseEvent $ 354(GlassViewEventHandler.jav A:416) でcom.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389) com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:415)で com.sun.glass.ui.View.handleMouseEvent(View.java:555) com.sun.glass.ui.View.notifyMouse(View.java:937) com.sun.glass.ui。 win.WinApplication._runLoop(ネイティブメソッド)at com.sun.glass.ui.win.WinApplication.lambda $ null $ 148(WinApplication.java:191) at java.lang.Thread.run(Unknown Source)原因: java.lang.reflect.InvocationTargetExceptionが にあります。sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)at su n.reflect.NativeMethodAccessorImpl.invoke(不明なソース) sun.reflect.DelegatingMethodAccessorImpl.invoke(不明なソース) でjava.lang.reflect.Method.invoke(不明なソース) sun.reflect.misc.Trampoline.invoke sun.reflectで java.lang.reflect.Method.invoke(不明なソース)で sun.reflect.DelegatingMethodAccessorImpl.invoke(不明なソース)で sun.reflect.GeneratedMethodAccessor1.invoke(不明なソース)で(不明なソース) .mxml.FXMLLoader $ MethodHandler.invoke(FXMLLoader.java:1771)... 48より原因:java.lang.IllegalStateException:場所が に設定されていません。 javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2434)の javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409) localmart.view.AuthController.Register(AuthController.java:22)... 58 より
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);
}
}
コントローラ。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();
}
}
}
私は、コントローラ、onaction、FX設定方法main.javaで、クリックのサインアップボタンをフォームを登録ロードへのI registerform
を切り替える必要があり、私の質問:
をlogin.fxmlにIDを
fxmlファイルを共有し、切り替えてどういう意味ですか?サインアップのアンカーパネルを非表示にしてregisterformを表示しますか?または両方を見えるようにしますか? –
私は2つのfxmlファイルを設計しました。一つはログインフォームと他の登録フォーム用です...ログインフォームステージ(ウィンドウ)にあるサインアップボタンをクリックすると、登録フォームウィンドウが開きます –
実際に別のfxmlファイルを同じ場面、そう? 現在、シーン内で同じfxmlをロードするボタンアクションで、同じメソッド 'showSignUp()'を呼び出しています。だからもし私が言ったことを試しているのであれば、最初にログインfxmlをロードし、ボタンアクション –