Thằng nào biết về lập trình Java trợ giúp t với

da1708

Pần cùng đạo tặc
đang làm bài tập về jtable mà bí quá
299966458_1944464449084281_2652406671984128774_n.png
 
Quăng cái object và constructor của JTable lên xem nó cần truyền vào cái gì nè.
bQIOgWC.jpg

mảng trà sữa truyền trực tiếp giữ liệu vào và cho nó hiển thị ra bảng menu. Sau đó mình chọn dòng nào ở bảng menu thì nó sẽ hiện xuống dưới bảng đã chọn, khi nhập số lượng vào thì sẽ tính tiền và hiện ra ở bảng hóa đơn. t mới làm được phần hiện và chọn, còn phần nhập số lượng + tính tiền ra bảng hóa đơn chưa biết làm như nào

đây là phần hiện Menu:
Java:
public void viewMenu() {
        DefaultTableModel model = (DefaultTableModel)table_TraSua.getModel();
        for(TraSua ts : list) {
            Object[] rowData = new Object[] {ts.maTs, ts.tenTs, ts.donGia};
            model.addRow(rowData);
        }

đây là phần chọn từ bảng Menu hiện ra ở bảng đã chọn:
Java:
table_TraSua.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
              if (SwingUtilities.isLeftMouseButton(e)) {
                  int row = table_TraSua.rowAtPoint(e.getPoint());
                  if (row > -1) {
                      DefaultTableModel menuModel = ((DefaultTableModel)table_TraSua.getModel());
                      DefaultTableModel daChonModel = ((DefaultTableModel)table_DaChon.getModel());
                          TraSua ts = list.get(row);
                          Object[] rowData = new Object[] {ts.maTs, ts.tenTs, ts.donGia};
                          daChonModel.addRow(rowData);
                          listDaChon.add(ts);
                        }
                      }
                }
            }
        );
đây là phần t cho nó hiển thị bảng hóa đơn (hiện giống như bảng đã chọn thôi chứ chưa tính toán gì) nhưng nó không hiện ra được.
Java:
    public void viewHoaDon() {

        DefaultTableModel hoaDonModel = (DefaultTableModel)table_inHoaDon.getModel();
        for(TraSua ts : listDaChon) {
            Object[] rowData = new Object[] {ts.maTs, ts.tenTs, ts.donGia};
            hoaDonModel.addRow(rowData);
}
}
 
bQIOgWC.jpg

mảng trà sữa truyền trực tiếp giữ liệu vào và cho nó hiển thị ra bảng menu. Sau đó mình chọn dòng nào ở bảng menu thì nó sẽ hiện xuống dưới bảng đã chọn, khi nhập số lượng vào thì sẽ tính tiền và hiện ra ở bảng hóa đơn. t mới làm được phần hiện và chọn, còn phần nhập số lượng + tính tiền ra bảng hóa đơn chưa biết làm như nào

đây là phần hiện menu:
Java:
public void viewMenu() {
        DefaultTableModel model = (DefaultTableModel)table_TraSua.getModel();
        for(TraSua ts : list) {
            Object[] rowData = new Object[] {ts.maTs, ts.tenTs, ts.donGia};
            model.addRow(rowData);
        }

đây là phần chọn từ bảng menu hiện ra ở bảng đã chọn:
Java:
table_TraSua.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
              if (SwingUtilities.isLeftMouseButton(e)) {
                  int row = table_TraSua.rowAtPoint(e.getPoint());
                  if (row > -1) {
                      DefaultTableModel menuModel = ((DefaultTableModel)table_TraSua.getModel());
                      DefaultTableModel daChonModel = ((DefaultTableModel)table_DaChon.getModel());
                          TraSua ts = list.get(row);
                          Object[] rowData = new Object[] {ts.maTs, ts.tenTs, ts.donGia};
                          daChonModel.addRow(rowData);
                          listDaChon.add(ts);
                        }
                      }
                }
            }
        );
đây là phần t cho nó hiển thị bảng hóa đơn (hiện giống như bảng đã chọn thôi chứ chưa tính toán gì) nhưng nó không hiện ra được.
Java:
    public void viewHoaDon() {

        DefaultTableModel hoaDonModel = (DefaultTableModel)table_inHoaDon.getModel();
        for(TraSua ts : listDaChon) {
            Object[] rowData = new Object[] {ts.maTs, ts.tenTs, ts.donGia};
            hoaDonModel.addRow(rowData);
}
}
Debug xem listDaChon nó trả ra cái gì?

Nghi ngờ anh chưa khởi tạo object listDaChon

Mà listDaChon ở đây là gì vậy ?
 
Debug xem listDaChon nó trả ra cái gì?

Nghi ngờ anh chưa khởi tạo object listDaChon

Mà listDaChon ở đây là gì vậy ?
listDaChon để lưu lại những món đã chọn ở trên. khi click chuột vào row ở bảng Menu thì nó add vào listdachon đó. nhưng có vẻ cái list đó k add được gì cả nên nó k hiện ra. Giờ t muốn nhập vào cột số lượng ở bảng đã chọn thì nó tính tiền và hiện ra bảng hóa đơn bên cạnh đó thì có cách gì hay k m
 
listDaChon để lưu lại những món đã chọn ở trên. khi click chuột vào row ở bảng menu thì nó add vào listdachon đó. nhưng có vẻ cái list đó k add được gì cả nên nó k hiện ra. Giờ t muốn nhập vào cột số lượng ở bảng đã chọn thì nó tính tiền và hiện ra bảng hóa đơn bên cạnh đó thì có cách gì hay k m
Sử dụng chính cái Object[] daChonData rồi sau đó append data vào.

Vì cùng dùng JTable như nhau mà đúng không?
 
Sử dụng chính cái Object[] daChonData rồi sau đó append data vào.

Vì cùng dùng JTable như nhau mà đúng không?
thế tính toán thì làm cách nào vậy, t muốn lấy cột đơn giá nhân với cột số lượng rồi tính tổng lại giống như trong excel thì có đc k? nếu đc thì lm ntn chỉ t với chiều nay nộp bài rồi:(
 
table_TraSua.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { if (SwingUtilities.isLeftMouseButton(e)) { int row = table_TraSua.rowAtPoint(e.getPoint()); if (row > -1) { DefaultTableModel menuModel = ((DefaultTableModel)table_TraSua.getModel()); DefaultTableModel daChonModel = ((DefaultTableModel)table_DaChon.getModel()); TraSua ts = list.get(row); Object[] rowData = new Object[] {ts.maTs, ts.tenTs, ts.donGia}; daChonModel.addRow(rowData); listDaChon.add(ts); } } } } );
Ở đoạn code này m thêm các biến để tính tổng luôn
 
thế tính toán thì làm cách nào vậy, t muốn lấy cột đơn giá nhân với cột số lượng rồi tính tổng lại giống như trong excel thì có đc k? nếu đc thì lm ntn chỉ t với chiều nay nộp bài rồi:(
Tính toán dữ liệu trước rồi ném vào mảng đó ông tướng :sure:, T không biết làm đâu, chỉ đọc hiểu logic của bạn thôi.
 
Top