繁体   English   中英

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

[英]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

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

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

所以在ViewAssigments应该这样定义。

public class ViewAssigments extends Something implements PropertyChangeListener

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

此外,如果您的类扩展了JComponent您已经准备好一个PropertyChangeSupport实例,可用于注册ListenersfirePropertyChange(..)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM