我试图这样做,当我按下按钮时,我的JTextArea中的内容将通过System.out.print方法打印出来,但是有些事情是不对的。这是我的代码:
public static void text(){
JButton jb = new JButton("Button");
final String s;
JFrame frame = new JFrame();
t1= new JTextArea(3,10);
s=t1.getText();
ActionListener al = new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
System.out.print(s);
}
};
jb.addActionListener(al);
jp.add(jb);
jp.add(t1);
frame.add(jp);
frame.setTitle("Card");
frame.setSize(700,500);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setVisible(true);
}
public static void main(String [ ] args){
text();
}
答案 0 :(得分:3)
当您撰写s=t1.getText()
时,这并不意味着s
始终包含t1
中的文字。这意味着将s
设置为任何文本t1
现在包含 (即,当执行该行时,在您的情况下是在设置GUI时)。
您可能希望在按下按钮时获取文本:
@Override
public void actionPerformed(ActionEvent e) {
// System.out.print(s); <- delete this
System.out.print(t1.getText());
}
您还可以删除与s
相关的所有内容,因为它未被使用。