我正在构建一个应用程序,通过提供分步说明帮助用户浏览网站。
说明以对话框的形式给出。我正在使用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按钮。
我怎样才能做到这一点?
任何帮助将不胜感激。感谢。
答案 0 :(得分:2)
CardLayout是我用于类似问题的东西。
它就像一个卡片组,你可以一个接一个地显示。
答案 1 :(得分:0)
前一段时间,我遇到了类似的问题。我开发了小型图书馆UiBooster。使用UiBooster,您可以创建阻止对话框来询问用户不同的输入。
String opinion = new UiBooster().showTextInputDialog("What do you think?");