我有一个条件,如果条件通过,我将显示一个 JDialog。如果失败,我只需要显示 JOption Pane 并处理 JDialog。前任。我必须在单击按钮时显示对话框,
import javax.swing.JDialog;
import javax.swing.JLabel;
public class MyDialog extends JDialog {
public MyDialog(String name){
JLabel welcomeLable = new JLabel("Hi welcome");
add(welcomeLable);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setSize(100, 100);
if(name.equals("pass")){
//Do nothing
}else{
dispose();
}
}
public static void main(String[] d){
MyDialog dialog = new MyDialog("fail");
dialog.setModal(true);
dialog.show();
}
}
消息框显示验证消息,但仍显示对话框。怎么解决这个问题。 怎么解决这个问题。
最佳答案
将逻辑与对话框分开。您的对话框不应该决定是否应该显示它,这不是它的工作。让您的代码执行此操作...
public class MyDialog extends JDialog {
public MyDialog(String name){
JLabel welcomeLable = new JLabel("Hi welcome");
add(welcomeLable);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setSize(100, 100);
}
public static void main(String[] d){
if(name.equals("pass")){
MyDialog dialog = new MyDialog("fail");
dialog.setModal(true);
dialog.show();
}
}
}
我还建议您考虑看看JOptionPane
,它可以大大减少您可能需要使用的重复代码量。
看看How to Make Dialogs了解更多详情
关于java - 在构造函数中处理 JDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25717366/