繁体   English   中英

禁用-启用JFrame日食

[英]disable -enable jframe eclipse

我试图禁用我的mainJframe以使其使用另一个jFrame之后。 我禁用它之后: actionPerformed与: frame.setEnabled(false); 第二个jFrame可以正常工作并关闭,但是我无法再次启用mainJframe。

public class Main {

    JFrame frame;
    public static void main(String[] args) {...}
    private void initialize() {
        frame = new JFrame();
        frame.getContentPane().setFont(new Font("Tahoma", Font.PLAIN, 13));
        frame.setBounds(50, 10, 1050, 650);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(new CardLayout(0, 0));

        JMenuBar menuBar = new JMenuBar();
        frame.setJMenuBar(menuBar);

        JMenu menu1 = new JMenu("Something");
        menuBar.add(menu1);

        JMenuItem menuItem1 = new JMenuItem("go to frame 2");
        mntmAddStudent.setFont(new Font("Segoe UI Semilight", Font.PLAIN, 12));
        menu1.add(menuItem1);
        menuItem1.addActionListener(new ActionListener() {          
            public void actionPerformed(ActionEvent arg0) {

                frame.setEnabled(false); /* ???diable it here or in OtherClass??? */    

                OtherClass otherClass = new OtherClass ();
                otherClass .setVisible(true);

            }
        });

    }
}

public class OtherClass extends JFrame {

    private JFrame otherClass;
    public static void main(String[] args) {...}

    public OtherClass() {
        otherClass = new JFrame();
        setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
        addWindowListener(new WindowAdapter() {

             public void windowClosing(WindowEvent e) {
                    System.out.println("closing...");
                    JFrame frame = (JFrame)e.getSource();

                    int result = JOptionPane.showConfirmDialog(frame,"Are you sure you to close this frame?","Exit Application",JOptionPane.YES_NO_OPTION);

                    if (result == JOptionPane.YES_OPTION){
                ***What do I do here to enable main frame again?***      
                        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                        }
               });
    }
}   

我在main和jFrame中也有多种布局,现在无法将它们更改为jDialogs。 我正在使用日食开普勒。 问题是什么?

基本上,您“似乎”要做的就是创建一个新实例Main并启用它,而不是启用先前禁用的实例。

首先摆脱Main m = new Main() ,但是除非我们有更多代码可以通过,否则不可能建议您如何引用父框架。

更好的解决方案可能是使用模式JDialogJOptionPane作为第二个窗口,这将阻止用户与第一帧进行交互,直到关闭它为止。

查看更多如何制作对话框的详细信息

一个实际的可运行示例来演示您的问题将涉及较少的猜测工作和更好的响应

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM