[Help] Sắp xếp dữ liệu trong table

Discussion in 'Xây dựng ứng dụng desktop standalone' started by Nguyễn Tiến Thành, 1/6/17.

  1. Em làm sắp xếp dữ liệu trong table nhưng lúc sắp xếp không được vào báo lỗi này "Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Vector". Mọi người giúp em với, tối nay em phải nộp bài rồi.
    Đây là đoạn code về sắp xếp của em
    mnSXTenSP.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent arg0) {
    vec = new Vector<>();
    vec2 = new Vector<>();
    vec.add("Mã Sản Phẩm");
    vec.add("Tên Sản Phẩm");
    vec.add("Chủng loại");
    vec.add("Mô tả Sản Phẩm");
    vec.add("Nhà cung cấp");
    vec.add("Nhà sản xuất");
    vec.add("Số lượng");
    vec.add("Giá");
    int tenSelected = mnSXTenSP.getComponentCount();
    int count =0;
    ArrayList<SanPham> dsSP = new ArrayList<>();
    if(tenSelected>=0)
    {
    Collections.sort(dsSP, new Comparator<SanPham>() {

    @Override
    public int compare(SanPham o1, SanPham o2) {
    return o1.getTenSP().substring(o1.getTenSP().lastIndexOf(" ")).compareTo(o2.getTenSP().substring(o2.getTenSP().lastIndexOf(" ")));
    }
    });
    for(SanPham sp : dsSP)
    {
    count++;
    sp.setMaSP(count);
    vec.add(sp.getTenSP());
    vec.add(sp.getChungLoai());
    vec.add(sp.getNhaCungCap());
    vec.add(sp.getMoTaSP());
    vec.add(sp.getNhaSX());
    vec.add(sp.getSoLuong());
    vec.add(sp.getGia());
    dtm.addRow(vec);
    }
    tblSanPham.setModel(new DefaultTableModel(vec, vec2));
    }
    }
    });
  2. QuangTrung93

    QuangTrung93 New Member

    Vector vec bạn declare như thế nào vậy đã khai báo đúng : Vector<String> vec chưa, chỗ init kia thì đổi lại vec = new Vector<String> (); xem
  3. Em sửa lại khai báo như thế cũng báo lỗi như vậy anh ơi
  4. QuangTrung93

    QuangTrung93 New Member

    Vậy bạn đưa toàn bộ code lên mình xem giúp được gì không
  5. Joe

    Joe Moderator

    Code:
     for(SanPham sp : dsSP) //<< Fully WRONG!!!
    {
         ...
    }
    Don't use old JDK codes and compile them with JDK7 or 8. Before you start to cry for help you should
    1) look at the class you work with: Here ArrayList (e.g. JDK7: HERE)
    2) then check for the changes or the way how to iterate an ArrayList.
    3) then study the error message.
    4) follow the hint and correct it.
    5) Don't insert codes into an IDE-generated code-frame is very dangerous and KISS (Keep It Simple Stupid), but develop them by yourself.
    If your English is bad you'll never become a developer. Neither JAVA, nor Python, nor C/C++ developer... What you do with the for-loop is fully wrong and the error message tells you what you've wrongly done: Casting from ArrayList to Vector is impossible.
    PHP:
    ArrayList<SanPhamdsSP = new ArrayList<SanPham>();
    ...
    for (
    int i=0s=dsSP.size(); s; ++i) {
        
    SanPham sp dsSP.get(i);
        ...
    }
  6. Đây là toàn bộ code của em, anh xem hộ em với

    Attached Files:

  7. Em cảm ơn anh đã góp ý, em mới học nên còn nhiều sai sót mong anh thông cảm, em sẽ cố gắng học hỏi nhiều hơn. (Tiếng anh của em kém nên không trả lời anh bằng tiếng anh được)
  8. Em cũng không biết, nhấn vào không báo lỗi cũng ko sắp xếp @@
  9. sửa lỗi mà @Joe bảo đi xem được ko: "Casting from ArrayList to Vector is impossible". (Không thể ép kiểu từ ArrayList sang Vector)
  10. JackV

    JackV Administrator Staff Member

    Khi mình nhìn thấy thì đã timeover, sao lại để đến lúc đó mới làm chứ
  11. Không phải lúc đấy mới làm anh ơi, em làm mấy hôm trc rồi mà chưa ra được, nhưng cuối cùng em cũng làm được rồi. Em cảm ơn anh.

Chia sẻ trang này