java - 更改另一个类中 JLabel 的文本 (Java)

标签 java swing jlabel

这让我感到困惑和恼怒有一段时间了。我正在为 friend 开发一个小程序,基本上它是一个待办事项列表。用户可以使用AddAssignment 类创建任务。用户必须填写几个字段,但我正在处理第一个字段,即任务名称。保存任务后,它就会添加到 ViewAssignments 类中的列表中。任务名称的 JTextField 称为 textField

我希望在按下时将ViewAssignments中的JLabellblAssignmentNa的文本设置为textField的文本>btnCreateAssignmentAddAssignment 类中的按钮。

我只希望将 JLabel 的文本更改为与 textField 的文本相同的代码作为答案。谢谢。 如果您不明白这些,我很抱歉。如果您需要更多信息,请告诉我。

最佳答案

首先,尽量不要调用类名,因为它的行为 AddAssigment 对于类来说是一个坏名称。例如应该是 AddAssignmentPanel。

其次,您应该阅读本教程,然后使用它 Property Change Listeners ,(基本上是观察者模式的实现)。

  • Observer 在您的情况下是具有 lblAssignmentNa 的类 属性(使用PropertyChangeListener)
  • Observable 在您的情况下是具有 textfield 的类 属性(使用PropertyChangeSupport)

所以你必须做这样的事情。

  1. 将观察者类注册到可观察类中
  2. 当事件发生时,在您的情况下,btnCreateAssignment 要求您通知您的观察者。

所以在ViewAssigments中应该这样定义。

public class ViewAssigments extends Something implements PropertyChangeListener

AddAssigment中将ViewAssigment注册为观察者
btnCreateAssigment 事件中,您必须调用 propertyChangeSupport.firePropertyChange(..) 并将其发送给观察者以通知状态更改。

此外,如果您的类扩展了 JComponent,您就有一个 PropertyChangeSupport 实例准备好注册 ListenersfirePropertyChange(..)

关于java - 更改另一个类中 JLabel 的文本 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17130483/

相关文章:

java - 如何使 Java jtable、单元格编辑器和撤消协同工作而不创建无关的撤消事件?

Java:调用静态方法但没有任何反应?

java - 将 JLabel 添加到 JPanel

java - 将 sql varchar 分配给 JLabel 值

java - 对多个按钮/JLabels 使用 MouseListener 的 mouseEntered 方法

java - 对于 Java 中特定实例的每个对象循环

java - 在 ExpectedExceptionMessageRegExp TestNG 中包含模式匹配

java - 推特搜索 API 始终返回空地理位置

java - 使用java创建凯撒密码方法

java - JTextArea 有标题吗?