【问题标题】:Enabling Jbutton in frame from another class - GUIBuilder在另一个类的框架中启用 Jbutton - GUIBuilder
【发布时间】:2013-06-02 00:44:17
【问题描述】:

我使用 Netbeans IDE 创建了一个 JFrame。一旦按下提交按钮来处理我在另一类中处理的一个操作,我就禁用了它。如果操作成功完成,我需要在该帧中启用一个名为 Next 的按钮,如果失败,我需要在同一帧中再次启用 Submit 按钮。因为它们是私人的,所以我无法从其他班级访问。如果我为该 Jframe 类按钮创建对象尚未启用,并且我认为已通过调用函数 Initcomponents() 再次调用了整个框架。

1) 在另一个类中执行某些操作后,如何在该框架中启用按钮。

【问题讨论】:

    标签: java swing jframe jbutton netbeans-7.3


    【解决方案1】:

    通常,我通常会提供一种方法,通过该方法主窗体可以将ChangeListener 注册到子窗体。

    然后我在子表单中提供一个方法,该方法返回一个boolean,表示已填写所需信息或(即isFormValid

    当子表单的任何特定部分发生更改时,它会触发一个更改事件,通知已注册的侦听器子表单已更改(在本例中为父表单)。

    然后父表单检查子表单的状态,并可以就它应该做什么提出异议......

    这是Observer Pattern 的基本概念,可以通过 Swing API 看到。

    它将您的代码解耦并防止不必要的对象暴露(您不希望子表单具有修改父表单的能力:P)

    【讨论】:

    • 我的回答建议两个单独的类/表单,其中一个(孩子)将被添加到另一个(父母),我认为这是你问题的含义......
    • 我有一个表单和另一个类,当该类中发生操作时,我需要在表单上启用一个按钮。但是为该表单类创建 obj 并调用 enable 选项不起作用。
    • 好的,所以你应该可以应用相同的概念,你甚至可以直接使用动作监听器 API...
    【解决方案2】:

    您需要一种访问按钮的方法,或者更确切地说是您的其他类中将为您启用按钮的方法。

    或者您可以有一个指示成功或失败的返回值,并且根据该返回值您可以通过 actionPerformed 方法更改按钮状态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 2017-01-04
      • 2014-12-21
      相关资源
      最近更新 更多