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