Nguyễn Đức Mạnh– Use case “Đăng Nhập”

Một phần của tài liệu Bài tập lớn JAVA QUẢN LÝ KHO CHO SHOP THỜI TRANG (Trang 52 - 58)

- Giao diện trực quan, dể sử dụng.

2.2.3Nguyễn Đức Mạnh– Use case “Đăng Nhập”

1 Giao diện vào/ra (Đăng Nhập)

Hình 2.8: Giao diện use case đăng nhập

Khi người dùng nhấn vào nut “loggin” trên màn hình quản lý chính sau khi đã nhập xong tài khoản và mật khẩu. Hệ thống sẽ so sánh tài khoản mật khẩu trong CSDL với mật khẩu ngoài nếu giống nhau thì hệ thống sẽ hiển thị ra form chính.

2 Mô tả các đối tượng trên màn hình:

Hình 2.9: Mô tả các thành phần trên giao diện chức năng đăng nhập

3 Mô tả thuật toán xử lý tương ứng với các tác động của người dùng.

• Khi người dùng nhấn vào nut “loggin”thì Hệ thống sẽ so sánh tài khoản mật khẩu trong CSDL. Nếu đúng hệ thống sẽ hiển thị ra form menu chính cho người dùng thao tác.

• Sau khi đăng nhập thành công form chính sẽ hiện lên và đồng thời tắt form đăng nhập.

Code:

JOptionPane.showMessageDialog(null, "Đăng Nhập Thành Công"); Home jrm=new Home();

this.setVisible(false); jrm.setVisible(true);

2.2.4 Nguyễn Đức Mạnh– Use case “Đăng Nhập”

Hình 2.10: Giao diện use case Quản Lý Sản Phẩm

Khi người dùng nhấn vào ô “Quản lý Sản Phẩm” trên màn hình quản lý chính. Hệ thống sẽ hiên thị ra một form quản lý tương ứng ngay bên cạnh. Nếu người dùng nhấn vào một ô bất kỳ nào trên menu quản lý chính thì form quản sản phẩm sẽ tắt đi.

5 Mô tả các đối tượng trên màn hình:

Hình 2.11: Mô tả các thành phần trên giao diện chức năng quản lý sản phẩm

6 Mô tả thuật toán xử lý tương ứng với các tác động của người dùng.

• Khi người dùng nhấn vào nut “Thêm”thì Hệ thống sẽ Kiểm tra dữ liệu trên các ô text feild có lỗi gì không. Nếu Không hệ thống thêm 1 sản phẩm vào trong CSDL.

Code:

if(txttensp.getText().length()==0||txtmau.getText().length()==0|| txtsize.getText().length()==0||txtNSX.getText().length()==0||

txtgia.getText().length()==0||txtsoluong.getText().length()==0) {

JOptionPane.showConfirmDialog(null,"Không Được Để Trống Các Mục Có Dấu (*)","Thông Báo",JOptionPane.PLAIN_MESSAGE);

} else {

try {

BUSSanPham BSP=new BUSSanPham();

BSP.insertSanPham(txttensp.getText(),txtmau.getText(),txtsiz e.getText(),txtNSX.getText(),Integer.parseInt(txtgia.getText()),

Integer.parseInt(txtsoluong.getText()), txtmota.getText()); loaddata();

} catch (Exception e) {

JOptionPane.showConfirmDialog(null,"Có Lỗi Khi Thêm","Thông Báo",JOptionPane.PLAIN_MESSAGE);

} }

}Home jrm=new Home(); this.setVisible(false);

jrm.setVisible(true);

• Khi người dùng nhấn vào nút “Sửa”thì Hệ thống sẽ Kiểm tra dữ liệu trên các ô text feild có lỗi gì không. Nếu Không hệ thống sửa thông tin của 1 sản phẩm trong CSDL.

Code:

public void updatedata(){

if(txtid.getText().length()==0) {

JOptionPane.showConfirmDialog(null,"Không Được Để Trống ID,Mời Chọn Sản Phẩm","Thông Báo",JOptionPane.PLAIN_MESSAGE); } else if(txttensp.getText().length()==0||txtmau.getText().length()==0|| txtsize.getText().length()==0||txtNSX.getText().length()==0|| txtgia.getText().length()==0||txtsoluong.getText().length()==0) { JOptionPane.showConfirmDialog(null,"Không Được Để Trống Các Mục Có Dấu (*)","Thông Báo",JOptionPane.PLAIN_MESSAGE);

} else {

try {

BUSSanPham BSP=new BUSSanPham();

BSP.updateSanPham(Integer.parseInt(txtid.getText()),txttens p.getText(),txtmau.getText(),txtsize.getText(),txtNSX.getText(),Integer.parse Int(txtgia.getText()), Integer.parseInt(txtsoluong.getText()), txtmota.getText()); loaddata(); } catch (Exception e) {

JOptionPane.showConfirmDialog(null,"Có lỗi khi sửa","Thông Báo",JOptionPane.PLAIN_MESSAGE);

} } }

• Khi người dùng nhấn vào nút “Xóa”thì Hệ thống sẽ Kiểm tra dữ liệu trên ô text feild ID có lỗi gì không. Nếu Không hệ thống xóa 1 sản phẩm trong CSDL.

Code:

public void deletedata(){

if(txtid.getText().length()==0) {

JOptionPane.showConfirmDialog(null,"Không Được Để Trống ID,Mời Chọn Sản Phẩm","Thông báo",JOptionPane.PLAIN_MESSAGE); }

else {

try {

BUSSanPham BSP=new BUSSanPham();

BSP.deleteSanPham(Integer.parseInt(txtid.getText())); loaddata();

} catch (Exception e) {

JOptionPane.showConfirmDialog(null,"Có lỗi khi xóa","Thông Báo",JOptionPane.PLAIN_MESSAGE);

} } }

• Khi người dùng nhấn vào nút “CLEAR”thì Hệ thống sẽ xóa toàn bộ dữ liệu đang có trên các ô text feild.

Code:

public void cleartext() {

txtid.setText(""); txttensp.setText(""); txtmau.setText("");

txtsize.setText(""); txtNSX.setText(""); txtmota.setText(""); txtsoluong.setText(""); txtgia.setText(""); }

• Khi người dùng chọn 1 sản phẩm trong bảng. Hệ thống sẽ đưa tất cả các thông tin của sản phẩm đó lên các ô text feild tương ứng.

Code:

public void getSelectData(){

int selectRow=TBsanpham.getSelectedRow(); txtid.setText(TBsanpham.getValueAt(selectRow,0).toString()); txttensp.setText(TBsanpham.getValueAt(selectRow,1).toString()); txtmau.setText(TBsanpham.getValueAt(selectRow, 2).toString()); txtsize.setText(TBsanpham.getValueAt(selectRow, 3).toString()); txtNSX.setText(TBsanpham.getValueAt(selectRow, 4).toString()); txtgia.setText(TBsanpham.getValueAt(selectRow, 5).toString()); txtsoluong.setText(TBsanpham.getValueAt(selectRow, 6).toString()); txtmota.setText(TBsanpham.getValueAt(selectRow, 7).toString()); }

1 Hướng dẫn sử dụng các thư viện chuẩn.

Các thư viện chuẩn sử dụng trong use case này: import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; Giải thích ý nghĩa:

- Thư viện java.sql.ResultSet là thư viện dùng để sử dụng đối tượng ResultSet phục vụ cho việc lấy về một tập kết quả với các câu lệnh truy vấn Sql.

- Thư viện java.sql.ResultSetMetaData được sử dụng để đổ dữ liệu từ tập kết quả ta đã thu được từ ResultSet lên JTable.

- Thư viện java.sql.SQLException để bắt các lỗi liên quan đến việc thực thi các câu lệnh sql.

- Thư viện java.sql.JOptionPane được sử dụng để hiện thị các thông báo lên màn hình khi cần thiết.

Thư viện javax.swing.table.DefaultTableModel quan trọng trong java swing vì nó sử dụng để đổ dữ liệu lên table, bởi vì bản thân table chỉ là nơi chứa dữ liệu nó không có khả năng giao tiếp với các đối tượng có kiểu dữ liệu khác table ở bên ngoài. Nên ta cần

sử dụng thêm một đối tượng tableModel để có thể giao tiếp với table và để việc thực hiện các chức năng trên table dễ dàng hơn.

2.3Kết luận

Một phần của tài liệu Bài tập lớn JAVA QUẢN LÝ KHO CHO SHOP THỜI TRANG (Trang 52 - 58)