这让我感到困惑和恼怒有一段时间了。我正在为 friend 开发一个小程序,基本上它是一个待办事项列表。用户可以使用AddAssignment
类创建任务。用户必须填写几个字段,但我正在处理第一个字段,即任务名称。保存任务后,它就会添加到 ViewAssignments
类中的列表中。任务名称的 JTextField 称为 textField
。
我希望在按下时将
,ViewAssignments
中的JLabellblAssignmentNa
的文本设置为textField
的文本>btnCreateAssignmentAddAssignment
类中的按钮。
我只希望将 JLabel 的文本更改为与 textField
的文本相同的代码作为答案。谢谢。
如果您不明白这些,我很抱歉。如果您需要更多信息,请告诉我。
最佳答案
首先,尽量不要调用类名,因为它的行为 AddAssigment 对于类来说是一个坏名称。例如应该是 AddAssignmentPanel。
其次,您应该阅读本教程,然后使用它 Property Change Listeners ,(基本上是观察者模式的实现)。
Observer
在您的情况下是具有lblAssignmentNa
的类 属性(使用PropertyChangeListener
)Observable
在您的情况下是具有textfield
的类 属性(使用PropertyChangeSupport
)
所以你必须做这样的事情。
- 将观察者类注册到可观察类中
- 当事件发生时,在您的情况下,
btnCreateAssignment
要求您通知您的观察者。
所以在ViewAssigments
中应该这样定义。
public class ViewAssigments extends Something implements PropertyChangeListener
在AddAssigment
中将ViewAssigment
注册为观察者
在 btnCreateAssigment
事件中,您必须调用 propertyChangeSupport.firePropertyChange(..)
并将其发送给观察者以通知状态更改。
此外,如果您的类扩展了 JComponent
,您就有一个 PropertyChangeSupport 实例准备好注册 Listeners
和 firePropertyChange(..)
关于java - 更改另一个类中 JLabel 的文本 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17130483/