2012-01-13 46 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

相关问题