我有一個包含三個JPanel的JFrame。第一個JPanel包含一個JTextField和一個JButton。一旦按下了JButton,第二個JPanel上的JLabel就可以顯示來自JTextField的文本輸入。然後,第三個JPanel將根據第二個JPanel中的JLabel更改其背景。如何在多個JPanel之間傳輸消息?
我的問題是: 如何在第一個JPanel訪問JTextField的內容,然後將它傳遞給其他兩個JPanel?
我有一個包含三個JPanel的JFrame。第一個JPanel包含一個JTextField和一個JButton。一旦按下了JButton,第二個JPanel上的JLabel就可以顯示來自JTextField的文本輸入。然後,第三個JPanel將根據第二個JPanel中的JLabel更改其背景。如何在多個JPanel之間傳輸消息?
我的問題是: 如何在第一個JPanel訪問JTextField的內容,然後將它傳遞給其他兩個JPanel?
您將首先將來自第一個文本字段的數據存儲在變量中。按下按鈕時,您可以在actionPerformed
方法中執行此操作。
在此之後,使用setText
函數更改JLabel的文本。
最後您通過調用setBackground
方法更改JPanel顏色。
String text = textField.getText();
label.setText(text);
myJPanel.setBackground(Color.white);
所以,你有三個面板:
JPanel panel1;
JTextField textFieldOnFirstPanel;
JButton buttonOnFirstPanel;
JLabel labelOnSecondPanel;
JPanel panel2;
JPanel panel3;
保留所有這三個面板和你的主要對象中所有組件的參考,這可能是你的JFrame對象本身。 根據事件,相應地更新這些組件。
我認爲最乾淨的方式成就你的目標在接收到來自經典Observer/Observable模式啓用的更改通知後訪問字段文本的獲取者。您可能會在這裏獲得有關此模式的詳細信息。 http://en.wikipedia.org/wiki/Observer_pattern 我的2件 傑羅姆
如果可能,請提供詳細的代碼示例。謝謝。 – sluk 2012-01-13 08:38:43
使用適當範圍的變量,也許。 – simchona 2012-01-13 08:12:20