Java Swing GUI - 如何一个接一个地打开多个对话框?

时间:2015-02-05 19:14:12

标签: java swing user-interface dialog

我正在构建一个应用程序,通过提供分步说明帮助用户浏览网站。

说明以对话框的形式给出。我正在使用Java Swing来创建GUI对话框。

这是我的代码的结构:

MainClass
{
    //some selenium code to access the website 'Google.com'.....

    InstructionDialog frame1 = new InstructionDialog("Enter 'Hello' in search field");
    frame1.setVisible(true);

    InstructionDialog frame2 = new InstructionDialog("Click 'Search' button");
    frame2.setVisible(true);

    InstructionDialog frame3 = new InstructionDialog("'Hello' is displayed in the results");
    frame3.setVisible(true);


}


class InstructionDialog extends JFrame {


    public String message;
    public static javax.swing.JButton btnOk;


    public InstructionDialog(String message)
    {

        //some code for the content pane //

        msgArea = new JTextArea();
        msgArea.setBounds(12, 13, 397, 68);
        contentPane.add(msgArea);
        msgArea.setEditable(false);
        simpleStepMessage.msgArea.setText(message);


        btnOk = new JButton("OK");
        btnOk.setBounds(323, 139, 97, 25);
        contentPane.add(btnOk);
        btnOk.addActionListener(new java.awt.event.ActionListener() 
        {
            public void actionPerformed(java.awt.event.ActionEvent evt) 
            {
                OkBtnActionPerformed(evt);
            }
        });


    public void OkBtnActionPerformed(java.awt.event.ActionEvent evt)
    {
        this.dispose();

    }


    }

}

运行它时的问题是InstructionDialog的所有3个实例同时运行。所以我同时弹出了所有3个对话框。

但我希望它们一个接一个地运行 - 第二个对话框不应该出现,直到按下第一个OK按钮,第三个对话框不应出现,直到按下第二个OK按钮。

我怎样才能做到这一点?

任何帮助将不胜感激。感谢。

2 个答案:

答案 0 :(得分:2)

CardLayout是我用于类似问题的东西。

它就像一个卡片组,你可以一个接一个地显示。

答案 1 :(得分:0)

前一段时间,我遇到了类似的问题。我开发了小型图书馆UiBooster。使用UiBooster,您可以创建阻止对话框来询问用户不同的输入。

enter image description here

String opinion = new UiBooster().showTextInputDialog("What do you think?");