我有一个包含三个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