0

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

我希望将 中lblAssignmentNa的 JLabelViewAssignments的文本设置为textField按下该类btnCreateAssignment中的一个按钮时的文本AddAssignment

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

4

3 回答 3

1

在回答您之前,我希望您检查此列表:

写出完美的问题

你可以说:当按下按钮 而不是这个段落时,如何将标签的文本设置为 textField 的文本。但是,这将帮助您:

jLabel.setText(textField.getText());
于 2013-06-16T05:33:44.447 回答
1

创建某种可以将请求传递给 的 setter 方法ViewAssignments,例如setAssignmentName当用户单击 时btnCreateAssignment,只需调用该方法,将String值从textField.

于 2013-06-16T05:35:57.350 回答
1

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

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

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

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

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

所以 inViewAssigments应该这样定义。

public class ViewAssigments extends Something implements PropertyChangeListener

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

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

于 2013-06-16T06:09:13.907 回答