如何在多个JPanel之间传输消息?

时间:2012-01-13 08:09:38

标签: java swing user-interface

我有一个包含三个JPanel的JFrame。第一个JPanel包含一个JTextField和一个JButton。按下JButton后,第二个JPanel上的JLabel可以显示来自JTextField的文本输入。然后,第三个JPanel将根据第二个JPanel的JLabel改变其背景。

我的问题是: 如何在第一个JPanel上访问JTextField的内容,然后将其传输到另外两个JPanel?

4 个答案:

答案 0 :(得分:3)

你可以创建

请仔细阅读@Hovercraft Full Of Eels对这两个选项的所有评论

答案 1 :(得分:1)

所以你有三个小组:

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

保留对所有这三个面板和主对象中所有组件的引用,这可能是您的JFrame对象本身。 根据事件,相应地更新这些组件。

答案 2 :(得分:0)

您将首先将第一个文本字段中的数据存储在变量中。按下按钮时,您可以在actionPerformed方法中执行此操作。

然后使用setText功能更改JLabel的文本。

最后通过调用setBackground方法更改JPanel颜色。

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

答案 3 :(得分:0)

我认为实现目标最干净的方法是在接收到经典Observer / Observable模式启用的更改通知后访问字段文本的getter。您可以在此处获取有关此模式的详细信息。 http://en.wikipedia.org/wiki/Observer_pattern 我的2件 杰罗姆