【发布时间】:2020-11-20 23:20:21
【问题描述】:
我在调用 getText() 时遇到了无法从我的 JTextField 中收集真实文本的问题。我提供了我正在运行的代码的简化版本,其中仅包括程序的各个方面,它将重现问题。我试图在单击按钮 b 时从 JTextField 收集文本。
从 getText() 返回的正确值应该是曾经输入过的值,但在这里它只是简单地返回一个空字符串。在测试中,我发现使用 String 初始化 TJextField 无论如何都会返回该 String,即使它在按下按钮之前已更改。例如,如果在 init() 中使用 setText(),它将继续返回一个空字符串。
public class TopClass {
public static void main(String[] args){
BottomClass bottom = new BottomClass();
bottom.init();
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class BottomClass implements ActionListener{
JFrame frame = new JFrame();
JTextField tf = new JTextField();
JButton b = new JButton("BUTTON");
public void init(){
BottomClass bc = new BottomClass();
b.addActionListener((ActionListener) bc);
frame.add(tf, BorderLayout.NORTH);
frame.add(b, BorderLayout.SOUTH);
frame.setSize(100,100);
frame.show();
}
public void actionPerformed(ActionEvent e) {
System.out.println("TEXT: "+tf.getText());
}
}
【问题讨论】:
标签: java swing actionlistener jtextfield