【问题标题】:How to transfer message between multiple JPanels?如何在多个 JPanel 之间传输消息?
【发布时间】:2012-02-09 11:32:27
【问题描述】:
我有一个包含三个 JPanel 的 JFrame。第一个 JPanel 包含一个 JTextField 和一个 JButton。一旦按下 JButton,第二个 JPanel 上的 JLabel 就可以显示来自 JTextField 的文本输入。然后,第三个 JPanel 将根据第二个 JPanel 的 JLabel 更改其背景。
我的问题是:
如何在第一个 JPanel 中访问 JTextField 的内容,然后传递给另外两个 JPanel?
【问题讨论】:
标签:
java
swing
user-interface
【解决方案2】:
你可以创建
请仔细阅读@Hovercraft Full Of Eels的所有cmets到这两个选项
【解决方案3】:
所以你有三个面板:
JPanel panel1;
JTextField textFieldOnFirstPanel;
JButton buttonOnFirstPanel;
JLabel labelOnSecondPanel;
JPanel panel2;
JPanel panel3;
保留对所有这三个面板和主对象中所有组件的引用,这可能是您的 JFrame 对象本身。
根据事件,相应地更新这些组件。
【解决方案4】:
您将首先将第一个文本字段中的数据存储在一个变量中。您可以在按下按钮时在actionPerformed 方法中执行此操作。
在此之后,您可以使用setText 函数来更改您的 JLabel 的文本。
最后通过调用它的setBackground 方法来更改JPanel 颜色。
String text = textField.getText();
label.setText(text);
myJPanel.setBackground(Color.white);