【问题标题】:how do I re-enable a JButton如何重新启用 JButton
【发布时间】:2012-04-13 12:31:17
【问题描述】:

我有一个程序可以测试数字是否为素数。 我有一个基本的 GUI,其中包含一个文本字段和一个名为 check 的按钮。现在,我通过添加一个简单的 GUI 数字键盘扩展了这个程序。在原来的 GUI 上,我添加了一个名为 keyboard 的新按钮,所以当按下时,它将打开 GUI 数字键盘并禁用检查按钮。现在我的问题是,如果 GUI 数字键盘窗口已关闭,如何重新启用复选按钮? 以下是我的代码的 sn-p:

        if (event.getSource()==jbKeyboard) {
            jbCheck.setEnabled(false);    
            KeyboardGui g = new KeyboardGui();
            if (g.equals(DISPOSE_ON_CLOSE)) {
                    jbCheck.setEnabled(true);
            }
         }

但这不起作用。

【问题讨论】:

    标签: java swing user-interface jbutton


    【解决方案1】:

    您为键盘添加WindowListener,在WindowClosing(WindowEvent e) 方法中,您可以执行您的jbCheck.setEnabled(true);

    不知道是什么KeyboardGui,但类似这样的东西(在你声明和初始化g之后添加):

    g.addWindowListener(this);
    

    然后你需要implement WindowListener 并添加适当的方法。

    这是关于窗口监听器的 Java 教程: http://docs.oracle.com/javase/tutorial/uiswing/events/windowlistener.html

    【讨论】:

    • 感谢分配,keyboardgui 是小键盘,抱歉!
    • 不不,我只是说我不确定它背后的代码是什么。我可以看到一些做监听器的方法(这取决于你如何实现键盘),但我认为一旦你阅读了 java 教程,你将能够弄清楚其余的。
    • @BabatundeOmodayo:Youssef 的解决方案是这个答案的一个很好的解决方案(1+),为此,您可能应该接受它。另一个考虑是在模态对话框(例如 JDialog)中显示数字窗口。然后,您甚至不必首先禁用检查按钮,因为在模式对话框不再可见之前无法访问它。
    猜你喜欢
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    相关资源
    最近更新 更多