gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 23:45:31 25 4
gpt4 key购买 nike

这让我感到困惑和恼怒有一段时间了。我正在为 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com