Lỗi khi thêm đối tượng mới vào ArrayList và JTable
Chào anh em daynhauhoc.
Mình đang làm một bài quản lý sinh viên đơn giản với java swing và mình gặp lỗi với chức năng thêm một sinh viên vào arraylist (chưa tính tới chức năng khác vì mình chưa làm). Ban đầu mình tự làm nhưng bị lỗi, sau có code mẫu làm giống y chang nhưng vẫn bị lỗi đến giờ vẫn còn đau đầu.
Đây là hàm thêm trong class DanhSachSinhVien.java của mình:
public boolean themSV(SinhVien sv) {
if (dssv.contains(sv))
return false;
return dssv.add(sv);
}
Đây là hàm thêm trong class GiaoDienSV.java:
public void themAction() {
String maSV;
String tenSV;
String phaiSV;
String ngaysinhSV;
double diemsv;
try {
maSV = tfMa.getText();
tenSV = tfTen.getText();
if (radNam.isSelected())
phaiSV = radNam.getText();
else
phaiSV = radNu.getText();
ngaysinhSV = tfNgaySinh.getText();
diemsv = Double.parseDouble(tfDiem.getText());
SinhVien sv = new SinhVien(maSV, tenSV, phaiSV, ngaysinhSV, diemsv);
if(!ds.themSV(sv))
{
JOptionPane.showMessageDialog(null, "TrÙng mã SV", "Error", 1);
tfMa.requestFocus();
return;
}
else napvaobang();
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, "Có lỗi khi thêm!", "Error", 1);
return;
}
}
Hàm napvaobang:
private void napvaobang() {
dfmodel.setRowCount(0);
for (int i = 0; i < ds.tongSV(); i++)
{
SinhVien sv = ds.getSV(i);
String[] rows = { sv.getMaSV(), sv.getTenSV(), sv.getNgaysinhSV(), sv.getPhaiSV(), sv.getDiemsv() + "" };
dfmodel.addRow(rows);
}
}
Mình luôn luôn bị hiện thông báo “Có lỗi khi thêm” ở phần catch mà không biết phải làm sao, trong khi đã làm y hệt code mẫu bài tương tự. Mong nhận được sự giúp đỡ.
Mình cảm ơn rất nhiều.
Thử thêm dòng
System.out.println(e.getMessage());
ở hàm catch để nó in ra lỗi rồi xem đó là lỗi gì bạn nhéCảm ơn bạn đã giúp đỡ, mình đã thử và hệ thống hiện “null”, mình vẫn chưa biết tại sao.
Vậy bạn có thể đưa toàn bộ project lên được không ? Nếu lớn quá thì nén lại và đưa lên cloud cũng được tại mình chưa biết nó lỗi gì cả
Bài mình đang làm là bài cơ bản nên rất ít code, đây là 3 class hiện tại mình đang sử dụng và bị lỗi như trên
Class SinhVien.java:
Class DanhSachSinhVien:
Class GiaoDienSV.java
Ở chỗ
private DanhSachSinhVien ds;
. Bạn mới chỉ khai báo là có một biếnDanhSachSinhVien ds
thôi chứ chưa gán giá trị cho biến đó. Nên là khi chạy dòng codeds.themSV(sv)
thì hệ thống sẽ không biếtds
có giá trị là gì, sinh ra lỗiNullPointerException
Bây giờ chỉ cần gán thêm giá trị cho
ds
thôi Sửa lại thành thế này bạn nhé:Thế này mà không nhìn ra, cảm ơn bạn rất nhiều nhé!