我使用 Netbeans IDE 创建了一个 JFrame。一旦按下提交按钮来处理我在另一类中处理的一个操作,我就禁用了它。如果操作成功完成,我需要在该帧中启用一个名为 Next 的按钮,如果失败,我需要在同一帧中再次启用 Submit 按钮。因为它们是私人的,所以我无法从其他班级访问。如果我为该 Jframe 类按钮创建对象尚未启用,并且我认为已通过调用函数 Initcomponents() 再次调用了整个框架。
1)如何在另一个类中执行某些操作后启用该框架中的按钮。
我使用 Netbeans IDE 创建了一个 JFrame。一旦按下提交按钮来处理我在另一类中处理的一个操作,我就禁用了它。如果操作成功完成,我需要在该帧中启用一个名为 Next 的按钮,如果失败,我需要在同一帧中再次启用 Submit 按钮。因为它们是私人的,所以我无法从其他班级访问。如果我为该 Jframe 类按钮创建对象尚未启用,并且我认为已通过调用函数 Initcomponents() 再次调用了整个框架。
1)如何在另一个类中执行某些操作后启用该框架中的按钮。
通常,我通常会提供一种方法,通过该方法主窗体可以将 a 注册ChangeListener
到子窗体。
然后我在子表单中提供一个方法,该方法返回一个boolean
指示所需信息已被填写或(即isFormValid
)
当子窗体的任何特定部分发生更改时,它会触发一个更改事件,通知已注册的侦听器子窗体已更改(在本例中为父窗体)。
然后父表单检查子表单的状态,并可以就它应该做什么提出异议......
这是观察者模式的基本概念,可以通过 Swing API 看到。
它使您的代码解耦并防止不必要的对象暴露(您不希望子表单具有修改父表单的能力:P)
您需要一种访问按钮的方法,或者更确切地说,需要一种来自其他类的方法来为您启用按钮。
或者您可以有一个指示成功或失败的返回值,并且根据该返回值,您可以从 actionPerformed 方法更改按钮状态。