我有以下问题:
我有一个填满整个屏幕的主应用程序窗口(JFrame的)。
当一个按钮被点击时,出现较小的窗口,以让用户输入的一些数据。 当用户这样做,在主窗口既不应该跳在前面,也不允许互动。
解决方案是:打开一个模式的JDialog。 让我们称之为该对话框1。
但点击该对话框中的按钮时,一个新的窗口(是/否的对话中)应该弹出..并再次,需要采取行动模式上已经模态的JDialog对话框1.试图做到这一点,第二对话不断消失背后的第一个。
我试图使对话框1一个JFrame,但然后,当然,我松散的“莫代尔”位。 强制对话框1留在从仍然保持在主窗口的按钮点击。
我在想什么? 我怎样才能把一个模态窗口摆OVER另一个模式摆动窗口?
编辑:一不,真正的工作版本的小例子:
开主类:
public class MainWin extends JFrame {
public MainWin(){
this.setSize(800,800);
JButton b = new JButton("click hehe");
this.getContentPane().add(b);
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new Dia1(MainWin.this);
}
});
this.setVisible(true);
}
}
主窗口:
public class MainWin extends JFrame {
public MainWin(){
this.setSize(800,800);
JButton b = new JButton("click hehe");
this.getContentPane().add(b);
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new Dia1(MainWin.this);
}
});
this.setVisible(true);
}
}
第一个对话框:
public class Dia1 extends JDialog {
public Dia1(final JFrame parent){
super(parent, true);
this.setSize(400, 400);
JButton b = new JButton("click hehe");
this.getContentPane().add(b);
this.setVisible(true);
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new Dia2(parent);
}
});
}
}
第二个对话框:
public class Dia2 extends JDialog {
public Dia2(JFrame parent){
super(parent, true);
this.setSize(200, 200);
JButton b = new JButton("click hehe");
this.getContentPane().add(b);
this.setVisible(true);
}
}
PS:我只是意识到:对话2不会隐藏,我怀疑..这是根本不存在。 最有可能的,因为从模态对话框阻塞父窗口?