出于某种原因 getText 不适用于文本字段。
也许我对此做错了。
private JTextField txtTemp;
txtTemp = new JTextField();
txtTemp.setBounds(350, 57, 86, 20);
mainPanel.add(txtTemp);
txtTemp.setColumns(10);
String filePath = txtTemp.getText();
System.out.println("File path is" +filePath);
在文本框中输入内容时,不会打印任何内容。
我也是通过使用动作监听器来完成的。加载程序,让用户添加一些文本。
btnTest = new JButton("TEST");
btnTest.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String filePath = txtTemp.getText();
System.out.println("File path is" +filePath);
}
});
仍然返回空白。
有什么想法吗?
答案 0 :(得分:1)
"在文本框中输入内容时,不打印任何内容。" ..."仍然返回空白。"
听起来你想要在输入文本字段时发生某些事情。为此,我们将使用DocumentListener
,该监听器用于更改文本字段的基础Document
。
final JTextField field = new JTextField(20);
field.getDocument().addDocumentListener(new DocumentListener(){
@Override
public void insertUpdate(DocumentEvent e) { printText(); }
@Override
public void removeUpdate(DocumentEvent e) { printText(); }
@Override
public void changedUpdate(DocumentEvent e) { printText(); }
private void printText() {
System.out.println(field.getText());
}
});
除此之外,如果您想在使用类型输入时发生某些事情,请在文本字段中添加ActionListener
。
答案 1 :(得分:0)
也不要在“动作侦听器”中执行,在ActionListener中只执行 吗?
我不知道你哪里出错了,你期待GUI屏幕上的输出吗?如果是这样你就错了,看看终端......
在这里,我尝试了它完美无缺,它在点击终端上的按钮后打印用户输入文本,
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class TestText{
public static void main(String[] args)
{
JFrame frame=new JFrame("TextFieldTest");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel mainPanel=new JPanel();
JTextField txtTemp;
txtTemp = new JTextField();
txtTemp.setBounds(350, 57, 86, 20);
mainPanel.add(txtTemp);
txtTemp.setColumns(10);
JButton btnTest = new JButton("TEST");
btnTest.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String filePath = txtTemp.getText();
System.out.println("File path is" +filePath);
}
});
frame.add(BorderLayout.SOUTH,btnTest);
frame.add(mainPanel);
frame.setSize(600,600);
frame.pack();
frame.setVisible(true);
}//main ends
}//class ends
答案 2 :(得分:0)
你的JTextField似乎是空的,只要你不提供任何输入,但常见的错误可能是:
可编辑吗?
txtTemp.setEditable(true);
是否添加了任何文字?
public void changeTxtField(String text)
{
txtTemp.setText(text);
System.out.println(text);
}
你的代码看起来很好
答案 3 :(得分:0)
我最终解决了这个问题。
如果我声明并实例化它起作用的对象,则在顶部。
private JTextField txtTemp = new JTextField();