我使用netbeanside创建了一个jframe。一旦按下submit按钮来处理我在另一个类中处理的一个操作,我就禁用了它。如果操作成功完成,我需要在该帧中启用名为next的按钮,如果失败,我需要在同一帧中再次启用submit按钮。因为它们是私人的,所以我不能从其他班级进入。如果我为这个jframe类按钮创建对象还没有启用,我想整个框架已经通过调用函数initcomponents()再次被调用了。1) 如何在另一个类中执行某些操作后在该帧中启用按钮。
pn9klfpd1#
通常,我会提供一种方法,使主窗体可以注册 ChangeListener 到子窗体。然后在子窗体中提供一个返回 boolean 表明所需信息已填写或(即 isFormValid )当子窗体的任何特定部分发生更改时,它将触发一个更改事件,通知已注册的侦听器子窗体(在本例中是父窗体)已更改。然后父窗体检查子窗体的状态,并可以就它应该做什么提出异议。。。这是观察者模式的基本概念,可以通过swing api看到。它使您的代码解耦,并防止不必要的对象暴露(您不希望子窗体具有修改父窗体的能力:p)
ChangeListener
boolean
isFormValid
nc1teljy2#
您需要一种方法来访问按钮,或者更确切地说,需要一个来自其他类的方法来为您启用按钮。或者您可以有一个指示成功或失败的返回值,并根据该值可以从actionperformed方法更改按钮状态。
2条答案
按热度按时间pn9klfpd1#
通常,我会提供一种方法,使主窗体可以注册
ChangeListener
到子窗体。然后在子窗体中提供一个返回
boolean
表明所需信息已填写或(即isFormValid
)当子窗体的任何特定部分发生更改时,它将触发一个更改事件,通知已注册的侦听器子窗体(在本例中是父窗体)已更改。
然后父窗体检查子窗体的状态,并可以就它应该做什么提出异议。。。
这是观察者模式的基本概念,可以通过swing api看到。
它使您的代码解耦,并防止不必要的对象暴露(您不希望子窗体具有修改父窗体的能力:p)
nc1teljy2#
您需要一种方法来访问按钮,或者更确切地说,需要一个来自其他类的方法来为您启用按钮。
或者您可以有一个指示成功或失败的返回值,并根据该值可以从actionperformed方法更改按钮状态。