窗口中按钮可以触发一个新的窗口,如何做到必须在新窗口关闭的情况下才能再次触发?

解决方案 »

  1.   

    你说的不太清楚。。swing还是其他?
    extjs里当生成一个新窗口时候,有个属性可以产生遮罩层,除了这个新窗口外,其他的都不能操作。
      

  2.   

    应该可以的吧!javax.swing.JFrame frame = new javax.swing.JFrame("JFRAME");
    frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
    frame.setSize(400, 300);
    javax.swing.JButton button = new javax.swing.JButton("Windows");
    Boolean hasWindow = false;
    button.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent event) {
            if(!b) {
                    javax.swing.JFrame frame2 = new javax.swing.JFrame("JFRAME2");
                    frame2.setDefaultCloseOperation(javax.swing.JFrame.DISPOSE_ON_CLOSE);
                    frame2.setSize(200, 100);
                    frame2.setVisible(true);
                    hasWindow = true;
            }
            else {
            javax.swing.JOptionPane.showMessageDialog(frame, "只能打开一个JFrame!", "警告", javax.swing.JOptionPane.WARNING_MESSAGE);
            }
        }
    });
      

  3.   

    我给你简单的说一下;
    写适配器啊。
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    public class Test implements ActionListener{ JFrame frame=new JFrame("测试");

    JButton button =new JButton();

    public Test(){

    frame.add(button);
    button.addActionListener(this);

    frame.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) {
    button.doClick();
    frame.dispose();
    }

    });

    frame.setVisible(true);

    } public void actionPerformed(ActionEvent e) {
    if(e.getSource()==button){
    JOptionPane.showMessageDialog(null, "按钮执行了!");
    }
    }

    public static void main(String args[]){
    new Test();
    }
    }还是给你写一个简单的例子吧,看不懂说一声,只是简单的写了一下。你看看
      

  4.   

    我给你简单的说一下;
    写适配器啊。
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    public class Test implements ActionListener{ JFrame frame=new JFrame("测试");

    JButton button =new JButton();

    public Test(){

    frame.add(button);
    button.addActionListener(this);

    frame.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) {
    button.doClick();
    frame.dispose();
    }

    });

    frame.setVisible(true);

    } public void actionPerformed(ActionEvent e) {
    if(e.getSource()==button){
    JOptionPane.showMessageDialog(null, "按钮执行了!");
    }
    }

    public static void main(String args[]){
    new Test();
    }
    }还是给你写一个简单的例子吧,看不懂说一声,只是简单的写了一下。你看看