使用JButton JAVA将数据写入ArrayList

使用JButton JAVA将数据写入ArrayList,java,events,arraylist,actionlistener,jlist,Java,Events,Arraylist,Actionlistener,Jlist,我想要的是,当用户单击按钮时,在文本框或JList中输入或从任何位置删除的数据将进入数组列表 我不想建立一个数据库!我只想在用户使用应用程序时存储数据。我已经尝试了所有的方法,但似乎事件按钮需要一定的难度,代码不应该被认真对待,它只是用于分析 重要的是只需按下一个按钮就可以将数据写入数组。 例: 我试图打印出数组的内容,以查看是否记录了用户输入,但它没有打印出任何内容。您需要远离ActionListener的列表 ArrayList recordArray=new ArrayList();

我想要的是,当用户单击按钮时,在
文本框
JList
中输入或从任何位置删除的数据将进入数组列表

我不想建立一个数据库!我只想在用户使用应用程序时存储数据。我已经尝试了所有的方法,但似乎事件按钮需要一定的难度,代码不应该被认真对待,它只是用于分析

重要的是只需按下一个按钮就可以将数据写入数组。 例:


我试图打印出数组的内容,以查看是否记录了用户输入,但它没有打印出任何内容。

您需要远离ActionListener的列表

  ArrayList recordArray=new ArrayList(); 

  btnSaveToArray.addActionListener (new ActionListener () {

        public void actionPerformed (ActionEvent e) {

        String receiveList = userList.getSelectedValue().toString();  

        recordArray.add(receiveList); 

        System.out.println(recordArray.toString()); 
        System.out.println(recordArray.size());  
  }

您应该在操作侦听器外部建立arraylist,并且只在侦听器内部执行add函数,如下所示:

public class Recorder {

    public ArrayList recordArray;

    public Recorder() {
        recordArray = new ArrayList();
        JButton btnSaveToArray = new JButton.... //whatever you are doing here
        btnSaveToArray.addActionListener (new ActionListener () {
            public void actionPerformed (ActionEvent e) {
                String receiveList = userList.getSelectedValue().toString();
                recordArray.add(receiveList);
                showTheRecords();
        });
    }

    public void showTheRecords() {
        for (int i = 0; i < recordArray.size(); i++ ) {
            System.out.println(recordArray.get(i).toString()); //get 
        }
        System.out.println("Record count: " + recordArray.size());
    }

}
公共类记录器{
公共数组列表记录数组;
公共录音机(){
recordArray=新的ArrayList();
JButton btnSaveToArray=新JButton..//无论您在这里做什么
btnSaveToArray.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
String receiveList=userList.getSelectedValue().toString();
recordArray.add(receiveList);
showTheRecords();
});
}
公共空间展示记录(){
对于(int i=0;i
代码的问题是,每当用户单击“确定”按钮时,您的操作就会执行(ActionEvent)方法将被执行。每次调用该方法时,您都在创建一个ArrayList,其中不包含以前的选择。因此,ArrayList必须是一个实例变量。每次用户单击“确定”按钮时,您只需将选择添加到列表中即可。

谢谢兄弟!!!!:你就是那个人!谢谢!是的!:DHappy听到了。。。。。。..@Ramomoura-没问题。投票结果也表示感谢;)
public class Recorder {

    public ArrayList recordArray;

    public Recorder() {
        recordArray = new ArrayList();
        JButton btnSaveToArray = new JButton.... //whatever you are doing here
        btnSaveToArray.addActionListener (new ActionListener () {
            public void actionPerformed (ActionEvent e) {
                String receiveList = userList.getSelectedValue().toString();
                recordArray.add(receiveList);
                showTheRecords();
        });
    }

    public void showTheRecords() {
        for (int i = 0; i < recordArray.size(); i++ ) {
            System.out.println(recordArray.get(i).toString()); //get 
        }
        System.out.println("Record count: " + recordArray.size());
    }

}