java创建两个面板A,B,两个面板中分别有一个文本框a,b,要求在b中获得a中输入的内容
时间: 2024-02-21 12:57:27 浏览: 21
可以使用监听器来实现在文本框a中输入内容时,将内容实时显示在文本框b中。
首先,需要在面板A中创建一个文本框a,并为其添加一个文本变化监听器。监听器会在文本框a中的内容发生变化时触发。在监听器中,需要获取文本框a中的内容,然后将内容设置到面板B中的文本框b中。
示例代码如下:
```
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
public class TestFrame extends JFrame {
private JTextField textA;
private JTextField textB;
public TestFrame() {
super("Test Frame");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 200);
setLocationRelativeTo(null);
JPanel panelA = new JPanel(new GridLayout(1, 1));
JPanel panelB = new JPanel(new GridLayout(1, 1));
textA = new JTextField();
textB = new JTextField();
// 为文本框a添加文本变化监听器
textA.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void changedUpdate(DocumentEvent e) {
updateText();
}
@Override
public void insertUpdate(DocumentEvent e) {
updateText();
}
@Override
public void removeUpdate(DocumentEvent e) {
updateText();
}
private void updateText() {
// 获取文本框a中的内容
String text = textA.getText();
// 设置内容到文本框b中
textB.setText(text);
}
});
panelA.add(textA);
panelB.add(textB);
getContentPane().add(panelA, "North");
getContentPane().add(panelB, "South");
setVisible(true);
}
public static void main(String[] args) {
new TestFrame();
}
}
```
在文本变化监听器中,我们首先获取文本框a中的内容,然后将其设置到文本框b中。由于文本变化监听器会在文本框a中的内容发生变化时触发,因此文本框b中的内容会实时更新。