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:
package QuanLySinhVien;
import java.io.Serializable;
public class SinhVien implements Serializable {
private static final long serialVersionUID = 1L;
private String maSV;
private String tenSV;
private String phaiSV;
private String ngaysinhSV;
private double diemsv;
public SinhVien(String maSV, String tenSV, String phaiSV, String ngaysinhSV, double diemsv) {
super();
this.maSV = maSV;
this.tenSV = tenSV;
this.phaiSV = phaiSV;
this.ngaysinhSV = ngaysinhSV;
this.diemsv = diemsv;
}
public String getTenSV() {
return tenSV;
}
public void setTenSV(String tenSV) {
this.tenSV = tenSV;
}
public String getPhaiSV() {
return phaiSV;
}
public void setPhaiSV(String phaiSV) {
this.phaiSV = phaiSV;
}
public String getNgaysinhSV() {
return ngaysinhSV;
}
public void setNgaysinhSV(String ngaysinhSV) {
this.ngaysinhSV = ngaysinhSV;
}
public double getDiemsv() {
return diemsv;
}
public void setDiemsv(double diemsv) {
this.diemsv = diemsv;
}
public String getMaSV() {
return maSV;
}
}
Class DanhSachSinhVien:
package QuanLySinhVien;
import java.util.List;
import java.util.ArrayList;
public class DanhSachSinhVien {
ArrayList<SinhVien> dssv;
public DanhSachSinhVien() {
dssv = new ArrayList<SinhVien>();
}
public boolean themSV(SinhVien sv) {
if (dssv.contains(sv))
return false;
return dssv.add(sv);
}
//Trả về tổng số lượng sinh viên trong danh sách
public int tongSV() {
return dssv.size();
}
//Lấy thông tin sinh viên tại vị trí i trong danh sách
public SinhVien getSV(int i)
{
if (i >= 0 && i < dssv.size())
return dssv.get(i);
return null;
}
}
Class GiaoDienSV.java
package QuanLySinhVien;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
public class GiaoDienSV extends JFrame implements ActionListener {
private JLabel
lbMa = new JLabel("Mã số sinh viên: "),
lbTen = new JLabel("Tên sinh viên: "),
lbPhai = new JLabel("Phái: "),
lbNgaySinh = new JLabel("Ngày sinh: "),
lbDiem = new JLabel("Điểm: ");
private JTextField
tfMa = new JTextField(25),
tfTen = new JTextField(25),
tfNgaySinh = new JTextField(25),
tfDiem = new JTextField(25),
tfTim = new JTextField(25);
private JRadioButton
radNam = new JRadioButton("Nam"),
radNu = new JRadioButton("Nữ");
private JButton
btTim = new JButton("Tìm"),
btThem = new JButton("Thêm"),
btSua = new JButton("Sửa"),
btXoa = new JButton("Xóa"),
btLuu = new JButton("Lưu"),
btClear = new JButton("Clear");
private ButtonGroup bg;
private DefaultTableModel dfmodel;
private JTable table;
private DanhSachSinhVien ds;
private static final long serialVersionUID = 1L;
public GiaoDienSV() {
setTitle("Quản lý sinh viên");
setSize(730,500);
setLocationRelativeTo(null);
setResizable(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
//north panel
JPanel nPanel = new JPanel();
JLabel nLabel = new JLabel("QUẢN LÝ SINH VIÊN");
nLabel.setFont(new Font("Arial",Font.BOLD,25));
nLabel.setForeground(Color.BLUE);
nPanel.add(nLabel);
this.add(nPanel, BorderLayout.NORTH);
//center panel
JPanel cPanel = new JPanel();
cPanel.setLayout(new BoxLayout(cPanel,BoxLayout.Y_AXIS));
Box b = Box.createVerticalBox();
Box b1 = Box.createHorizontalBox();
Box b2 = Box.createHorizontalBox();
Box b3 = Box.createHorizontalBox();
Box b4 = Box.createHorizontalBox();
b1.add(lbMa); b1.add(tfMa);
b2.add(lbTen); b2.add(tfTen);
b3.add(lbNgaySinh); b3.add(tfNgaySinh); b3.add(lbPhai);
bg = new ButtonGroup(); bg.add(radNam); bg.add(radNu);
b3.add(radNam); b3.add(radNu);
b4.add(lbDiem); b4.add(tfDiem);
lbTen.setPreferredSize(lbMa.getPreferredSize());
lbNgaySinh.setPreferredSize(lbMa.getPreferredSize());
lbDiem.setPreferredSize(lbMa.getPreferredSize());
b.add(b1); b.add(Box.createVerticalStrut(10));
b.add(b2); b.add(Box.createVerticalStrut(10));
b.add(b3); b.add(Box.createVerticalStrut(10));
b.add(b4); b.add(Box.createVerticalStrut(10));
//table
dfmodel = new DefaultTableModel();
table = new JTable(dfmodel);
dfmodel.addColumn("MSSV");
dfmodel.addColumn("Tên sinh viên");
dfmodel.addColumn("Ngày sinh");
dfmodel.addColumn("Giới tính");
dfmodel.addColumn("Điểm");
JScrollPane sp = new JScrollPane(table);
JPanel tablePanel = new JPanel(new GridLayout(1,1));
b.add(tablePanel);
tablePanel.add(sp);
cPanel.add(b);
this.add(cPanel, BorderLayout.CENTER);
//south panel
JPanel sPanel = new JPanel();
JPanel leftPane = new JPanel();
JPanel rightPane = new JPanel();
leftPane.add(tfTim);
leftPane.add(btTim);
rightPane.add(btThem);
rightPane.add(btClear);
rightPane.add(btSua);
rightPane.add(btXoa);
rightPane.add(btLuu);
JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,leftPane,rightPane);
sPanel.add(split);
btThem.addActionListener(this);
btClear.addActionListener(this);
this.add(sPanel, BorderLayout.SOUTH);
}
public static void main(String[] args) {
new GiaoDienSV().setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
//if(e.getSource().equals(btTim))
// timAction();
if(e.getSource().equals(btClear))
clearAction();
if(e.getSource().equals(btThem))
themAction();
//if(e.getSource().equals(btSua))
// suaAction();
//if(e.getSource().equals(btXoa))
// xoaAction();
//if(e.getSource().equals(btLuu))
// luuAction();
}
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);
System.out.println(ex.getMessage());
return;
}
}
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);
}
}
private void clearAction() {
tfMa.setText("");
tfTen.setText("");
tfNgaySinh.setText("");
bg.clearSelection();
tfDiem.setText("");
tfTim.setText("");
tfMa.requestFocus();
}
}