Arraylist 和 JTextArea 显示问题
Arraylist and JTextArea Display issue
我想知道是否有人可以指出正确的方向。
我正在尝试创建一个接受输入的 GUI,当按下按钮时,它会将其添加到 JTextArea。
我希望能够一直这样做,直到单击退出按钮。
我可以显示第一个输入,但我花了很多时间试图弄清楚如何继续添加输入直到单击退出按钮。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.util.ArrayList;
public class Window extends JFrame{
private final int WIDTH=400;
private final int HEIGHT=200;
private JButton button;
private JTextArea textArea;
private JTextField textField;
private JPanel panel;
private JButton exit;
public Window() {
super("TextArea");
setSize(WIDTH, HEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
buildPanel();
add(panel);
setVisible(true);
}
public void buildPanel(){
panel= new JPanel();
textField = new JTextField(10);
textArea = new JTextArea();
button = new JButton("Add");
button.addActionListener(new Calc());
exit = new JButton("exit");
exit.addActionListener(new ExitListener());
panel.add(textField);
panel.add(button);
panel.add(exit);
panel.add(textArea);
}
private class Calc implements ActionListener{
public void actionPerformed(ActionEvent e){
ArrayList<String> array= new ArrayList<String>();
String str = (String) textField.getText();
array.add(str);
textArea.setText(str);
}
}
private class ExitListener implements ActionListener{
public void actionPerformed(ActionEvent e){
System.exit(0);
}
}
public static void main(String []args){
new Window();
}
}
我相信您正在寻找 JTextArea#append
,这将允许您将 "appending" 文本保留在文本区域的末尾,而不是用新文本替换它,这就是setText
会做
试试这个代码它应该工作,我还建议你应该在你的 TextArea 中添加 JScrollPane。
private class Calc implements ActionListener{
public void actionPerformed(ActionEvent e){
ArrayList<String> array= new ArrayList<String>();
String str = (String) textField.getText();
array.add(str);
textArea.append(str + "\n");
}
}
我想知道是否有人可以指出正确的方向。
我正在尝试创建一个接受输入的 GUI,当按下按钮时,它会将其添加到 JTextArea。
我希望能够一直这样做,直到单击退出按钮。
我可以显示第一个输入,但我花了很多时间试图弄清楚如何继续添加输入直到单击退出按钮。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.util.ArrayList;
public class Window extends JFrame{
private final int WIDTH=400;
private final int HEIGHT=200;
private JButton button;
private JTextArea textArea;
private JTextField textField;
private JPanel panel;
private JButton exit;
public Window() {
super("TextArea");
setSize(WIDTH, HEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
buildPanel();
add(panel);
setVisible(true);
}
public void buildPanel(){
panel= new JPanel();
textField = new JTextField(10);
textArea = new JTextArea();
button = new JButton("Add");
button.addActionListener(new Calc());
exit = new JButton("exit");
exit.addActionListener(new ExitListener());
panel.add(textField);
panel.add(button);
panel.add(exit);
panel.add(textArea);
}
private class Calc implements ActionListener{
public void actionPerformed(ActionEvent e){
ArrayList<String> array= new ArrayList<String>();
String str = (String) textField.getText();
array.add(str);
textArea.setText(str);
}
}
private class ExitListener implements ActionListener{
public void actionPerformed(ActionEvent e){
System.exit(0);
}
}
public static void main(String []args){
new Window();
}
}
我相信您正在寻找 JTextArea#append
,这将允许您将 "appending" 文本保留在文本区域的末尾,而不是用新文本替换它,这就是setText
会做
试试这个代码它应该工作,我还建议你应该在你的 TextArea 中添加 JScrollPane。
private class Calc implements ActionListener{
public void actionPerformed(ActionEvent e){
ArrayList<String> array= new ArrayList<String>();
String str = (String) textField.getText();
array.add(str);
textArea.append(str + "\n");
}
}