[英]Changing the Text of A JLabel in Another Class (Java)
这一直使我感到困惑和烦恼。 我正在为一个朋友编写一个小程序, 基本上,这是一个待办事项清单。 用户可以使用AddAssignment
类创建任务。 用户必须完成几个字段,但是我正在处理第一个字段,即任务名称。 保存任务后,将其添加到ViewAssignments
类中的列表中。 任务名称的JTextField称为textField
。
我想文lblAssignmentNa
,选择JLabel在ViewAssignments
设置为文本textField
上的新闻btnCreateAssignment
,在一个按钮AddAssignment
类。
我只希望将JLabel的文本更改为与textField
的文本相同的代码作为答案。 谢谢。 如果您不了解其中的任何内容,我们深感抱歉。 请让我知道是否需要更多信息。
在回答您之前,我希望您检查以下列表:
您可能会说: 如何在按下按钮而不是此paragrap 时将标签的文本设置为textField的文本 。 但是,这将帮助您:
jLabel.setText(textField.getText());
创建某种可以将请求传递给ViewAssignments
的setter方法,例如setAssignmentName
,当用户单击btnCreateAssignment
,只需调用该方法,并从textField
传递String
值即可。
首先,尝试不调用类名,因为它的行为AddAssigment对类来说是一个坏名字。 例如,应为AddAssignmentPanel。
其次,您应该阅读本教程,然后将其用于Property Change Listeners (基本上是Observer Pattern
的实现)。
Observer
是具有lblAssignmentNa
属性的类(使用PropertyChangeListener
) Observable
到的是具有textfield
属性的类(使用PropertyChangeSupport
) 所以你必须做这样的事情。
btnCreateAssignment
通知观察者。 所以在ViewAssigments
应该这样定义。
public class ViewAssigments extends Something implements PropertyChangeListener
在AddAssigment
寄存器ViewAssigment
作为观察者
在btnCreateAssigment
事件中,您必须调用propertyChangeSupport.firePropertyChange(..)
并将其发送给观察者以通知状态更改。
此外,如果您的类扩展了JComponent
您已经准备好一个PropertyChangeSupport实例,可用于注册Listeners
和firePropertyChange(..)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.