当前位置: 首页 > 知识库问答 >
问题:

根据用户决定在图形界面中做什么来执行某个main。Java外汇

程正阳
2023-03-14

我会尽量简单。在主的开始,我创建了一个显示2个按钮的新阶段。根据点击的按钮,它将在舞台的控制器中设置一个数字为1或2。然后我创建一个条件,如果数字是1,我执行main的某个部分。如果数字是2,我执行main的另一部分。

问题是我必须等待用户的响应,我做了一个while条件(当数字为0时,我会在while中返回),但程序不工作。你有想法等待用户的回应吗?这里是代码的开头。


    
    public void start(Stage primaryStage) {
        
        try {
            
            FXMLLoader loader1 = new FXMLLoader(getClass().getResource("SampleStart.fxml"));
            Parent root1 = loader1.load();
            SampleControllerStart StartController = (SampleControllerStart) loader1.getController();
            
            
            
            Scene scene1 = new Scene(root1,474,435);
            primaryStage.setScene(scene1);
            
            
            primaryStage.show();
            
            StartController.setEtat(0);
            

            while(StartController.getEtat() == 0) {
                System.out.println("ok");
            }
            if(StartController.getEtat() == 1) {  ```

共有1个答案

吕博耘
2023-03-14

看来你要做的是有一个对话框,其中有一个选项,它将对程序的其余部分进行调整。

JavaFX在实现这一点上有点矫枉过正,但是您可以使用JavaFX.scene.control.dialog来获得您要查找的内容。

示例:

public void start(Stage stage) throws IOException {

    ButtonType b1 = new ButtonType("Choice 1", ButtonData.LEFT);
    ButtonType b2 = new ButtonType("Choice 2", ButtonData.RIGHT);
    Dialog<ButtonType> diag = new Dialog<>();
    DialogPane pane = diag.getDialogPane();
    pane.setContentText("Choose 1 or 2");
    pane.getButtonTypes().addAll(b1, b2);

    Optional<ButtonType> res = diag.showAndWait();

    if (!res.isPresent())
        return;
    if (res.get().equals(b1)) {
        System.out.println("Button 1 clicked");
    } else {
        System.out.println("Button 2 clicked");
    }
}

我在这里使用dialog.showandwait暂停,直到用户做出选择。不要像您那样在没有线程的情况下执行循环。sleep():这将使您的CPU白白耗尽,可能会使您的程序没有响应。

最好是使用JavaFX制作完整的UI,并在事件处理程序中处理用户对自己控件的选择,然后在JavaFX.concurrent.service中执行操作,该操作将在后台运行,让UI响应状态显示或取消任务。

或者你不需要UI而使用控制台从用户那里获取输入...

 类似资料:
  • 本文向大家介绍Java图形用户界面之列表框,包括了Java图形用户界面之列表框的使用技巧和注意事项,需要的朋友参考一下 列表框通过Swing组件JList产生,其总是在屏幕上占据固定行数的空间。如果要得到列表框中被选中的元素,只需调用getSelectedValuesList(),它可以产生一个字符串数组,内容为被选中的元素名称。JList组件允许多重选择;如果按住Ctrl键,可以选中所有点击的元

  • 所以我必须快速构建这个JavaFX应用程序,我的代码编译了,但是图形用户界面没有启动,我得到了异常。一旦实现FileChooser代码,问题就会开始。 FXML文件如下所示: 我完全是JavaFX的新手。任何提示都很感激。P. S.我正在使用胶粘场景生成器。 谢谢。 例外: 应用程序启动方法中的异常线程“main”java中的异常。lang.RuntimeException:com上应用程序启动方

  • 本节介绍如何创建Python程序的图形用户界面(GUI),也就是那些带有按钮和文本框的窗口。 目前支持Python的所谓"GUI工具包"有很多,但没有一个被认为是标准的,也好,选择空间大 GUI工具包: 工具包名 介绍 URL地址 Tkinter 使用Tk平台。很容易得到。半标准 http://wiki.python.org/moin/TkInter wxpython 基于wxWindows。跨平

  • 8.1 图形用户界面概述

  • 第 8 章 图形用户界面 随着 Windows 之类的图形化操作系统的产生和发展,如今用户在与计算机打交道时基本 上都使用形象直观、简单易学的图形化方式,即通过鼠标点击菜单、命令按钮等图形化元素 来向应用程序发出命令,而应用程序也以消息框、对话框等图形化元素来向用户显示各种信 息。因此,为程序建立图形化的用户界面已经成为当今程序设计必备的基本技术之一。本章 介绍图形用户界面的设计和实现,具体内容包

  • UnityGUI is the GUI creation system built into Unity. It consists of creating different Controls, and defining the content and appearance of those controls. Unity图形用户界面是固化在Unity中的图形用户界面系统。它含有创建不同控件和定义