【问题标题】:How do I use a button in Another Method? [duplicate]如何在另一种方法中使用按钮? [复制]
【发布时间】:2017-01-01 02:38:08
【问题描述】:

我正在尝试在提交选择后进行文本冒险,我希望它移动到下一个方法并允许您再次按下提交。我该怎么做?

private void submitActionPerformed(java.awt.event.ActionEvent evt) {                                       
    if (option1.isSelected()) {
        one(); 
    } else if (option2.isSelected()) {
        two();            
    } else {

    }
}                                      

private void one() {
    //Button action here
}

【问题讨论】:

    标签: java swing


    【解决方案1】:

    你需要重新调整你的想法。这不是您要调用的下一个方法,而是下一个状态——您要更改状态 您的模型(程序的逻辑部分)取决于用户在哪里以及他做出了什么响应,并根据此状态将程序的行为更改为用户的响应。你不想做的是硬连线你的代码,因为这会导致程序僵化,程序无法适应用户选择的变化或程序本身逻辑的变化。

    同样,解决您的一般问题的最佳方法是让您的程序使用state design pattern,其中程序对输入的响应取决于模型的状态(控制的对象)会发生什么)。

    【讨论】:

    • 我该怎么做?
    • @GerryStraatsma:您正在寻找一个简单的单一代码解决方案,但它并不存在。相反,解决方案是更深入地学习 Java 和编程,并学习将代码与数据、逻辑与用户交互分离。
    • @GerryStraatsma:否则,为了更好地回答问题,请发布有关您的代码和问题的更多相关信息,包括minimal reproducible example 和更多相关的背景信息。您现在的问题非常广泛,非常笼统,因此唯一合适的解决方案也必然非常广泛和笼统。
    【解决方案2】:

    如果我理解正确,您的冒险进程中将使用相同的按钮。如果是这种情况,您可以先注册第一个ActionListener,其actionPerformed() 对应一个。在该方法结束时,您可以deregister 监听器并注册一个新的监听器,其actionPerformed 实现为two()

    【讨论】:

    • 这在我的代码中会是什么样子?
    • @GerryStraatsma:如果你遵循这条路径并继续使用硬编码的刚性代码,那么你就走错了路,并且正在走向失败。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 2013-08-06
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多