Toggle Theme Editor
Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Charcoal

Listmodel

Discussion in 'Xây dựng ứng dụng desktop standalone' started by banybear2010, 23/12/18.

  1. banybear2010

    banybear2010 New Member

    Mình có đoạn code thêm sinh viên vào listmodel như sau, sao mỗi lần mình thêm nó không add tiếp vào list mà nó lại tạo ra một list mới
    public void actionPerformed(ActionEvent arg0) {
    ArrayList<SinhVien> arrSV=new ArrayList<SinhVien>();
    arrSV.add(new SinhVien(Integer.parseInt(txtNamSinh.getText()), txtTen.getText()));
    Collections.sort(arrSV);
    DefaultListModel dfl=new DefaultListModel();
    for(SinhVien s:arrSV)
    dfl.addElement(s.hoTen+" "+s.namsinh);
    list_DS.setModel(dfl);
    }
    });
     
    Last edited: 23/12/18
  2. Joe

    Joe Moderator

    PHP:
    ...
    ArrayList<SinhVienarrSV=new ArrayList<SinhVien>(); // <<< trouble is here!
    ...
    Sorry that I give you an English reply.
    The reason is that each time an action is performed a NEW arraylist is created and then discarded after termination of the actionPerformed method.
    If you want to continue the list you have to move arrSV out and declare it as a global arrayList and extend the list with new elements.
     
    javaee and banybear2010 like this.
  3. D.A.N_3002

    D.A.N_3002 Active Member

    Vấn đề của bạn ở đây chính là mỗi lần cái action này được thực hiện thì nó sẽ tạo ra 1 mảng mới và không chứa vào cái mảng cũ nữa.
    ==> Giải pháp cho bạn là tạo ra 1 mảng là biến toàn cục, rồi mỗi lần action đó thực hiện thì add vào cái mảng đó luôn.
     
    javaee and banybear2010 like this.

Chia sẻ trang này

Loading...