2012-01-13 31 views
1

我有一個包含三個JPanel的JFrame。第一個JPanel包含一個JTextField和一個JButton。一旦按下了JButton,第二個JPanel上的JLabel就可以顯示來自JTextField的文本輸入。然後,第三個JPanel將根據第二個JPanel中的JLabel更改其背景。如何在多個JPanel之間傳輸消息?

我的問題是: 如何在第一個JPanel訪問JTextField的內容,然後將它傳遞給其他兩個JPanel?

+2

使用適當範圍的變量,也許。 – simchona 2012-01-13 08:12:20

回答

0

您將首先將來自第一個文本字段的數據存儲在變量中。按下按鈕時,您可以在actionPerformed方法中執行此操作。

在此之後,使用setText函數更改JLabel的文本。

最後您通過調用setBackground方法更改JPanel顏色。

String text = textField.getText(); 
label.setText(text); 
myJPanel.setBackground(Color.white); 
1

所以,你有三個面板:

JPanel panel1; 
JTextField textFieldOnFirstPanel; 
JButton buttonOnFirstPanel; 
JLabel labelOnSecondPanel; 
JPanel panel2; 
JPanel panel3; 

保留所有這三個面板和你的主要對象中所有組件的參考,這可能是你的JFrame對象本身。 根據事件,相應地更新這些組件。

0

我認爲最乾淨的方式成就你的目標在接收到來自經典Observer/Observable模式啓用的更改通知後訪問字段文本的獲取者。您可能會在這裏獲得有關此模式的詳細信息。 http://en.wikipedia.org/wiki/Observer_pattern 我的2件 傑羅姆

+0

如果可能,請提供詳細的代碼示例。謝謝。 – sluk 2012-01-13 08:38:43

相關問題