我有一个包含三个JPanel的JFrame。第一个JPanel包含一个JTextField和一个JButton。按下JButton后,第二个JPanel上的JLabel可以显示来自JTextField的文本输入。然后,第三个JPanel将根据第二个JPanel的JLabel改变其背景。
我的问题是: 如何在第一个JPanel上访问JTextField的内容,然后将其传输到另外两个JPanel?
答案 0 :(得分:3)
答案 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件 杰罗姆