JTextArea 字符串不会打印到我的控制台?
JTextArea string won't print to my console?
我正在努力做到这一点,当我按下一个按钮时,我的 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();
}
当您写 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
有关的所有内容,因为它未被使用。
我正在努力做到这一点,当我按下一个按钮时,我的 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();
}
当您写 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
有关的所有内容,因为它未被使用。