0

我有一个 JavaFX 程序,它显示了一个简单的 MessageBox。

盒子类:

public class Box extends Application implements Runnable{



    private DialogFX dialog1 = null;

    private String message = null;
    private String type = null;
    private String title = null;

    public Box(){}

    public void ShowBox(String ptype, String ptitle, String pmessage){

        type = ptype;
        title = ptitle;
        message = pmessage;


    }

    public void run() {
        Application.launch();
    }

    public void start(Stage stage){

         dialog1 = new DialogFX();
         dialog1.setTitleText(title);
         dialog1.setMessage(message);
         dialog1.showDialog();


    }
}

此类使用 DialogFX 库来创建和显示一个简单的消息框。在类中,有一个函数被调用ShowBox,它获取三个参数。这些参数用于初始化消息框(标题、类型和消息)。在该start()方法中,使用所需参数创建新的 DialogFX 对象。

我的问题是,当我创建Box类的新对象并设置三个字符串参数时,它们在start()方法中保持为空,并出现空对话框。

创建Box对象的示例类:

public class MessageFrame {


    private static Box b = null;

    public static void main(String[] args) {
        b = new Box();
        b.ShowBox("ACCEPT", "Title", "Message here");
        b.run();

    }
}

我希望你能帮助我。可能是什么问题?

4

1 回答 1

0

我不是 JavaFX 专家,但问题是实际上Box创建了两个实例,一个由您创建:

b = new Box();

和一个由 JavaFX 框架调用时

Application.launch();

在你的run()方法内。后一个实例将是您的应用程序(并且根本不使用您创建的第一个实例)并且它未正确初始化(ShowBox(...)未对其调用)。

于 2013-08-21T10:45:08.277 回答