30/09/2018, 18:11

Làm sao để thay đổi nội dung của frame trong java swing?

Chào các bạn. Mình đang xây dựng 1 ứng dụng nhỏ dùng cho cửa hàng bán vật liệu xây dưng.
Mình muốn hỏi: Khi mình click vào Button Khách hàng hoặc Bán lẻ… Thay vì disable frame hiện tại mình muốn dữ liệu hiển thị trong vùng khoanh đỏ thì làm thế nào

LoveJav viết 20:28 ngày 30/09/2018

Cảm ơn anh @ltd! .

Mai Anh Dũng viết 20:21 ngày 30/09/2018

Bạn up thêm cái hình khi bấm vào bán lẻ thì chuyện gì sẽ xảy ra xem?

À, mà Bạn có thể chụp hình rồi Ctrl V vào khung editor, hình sẽ tự động lên luôn đấy. Nếu bạn chưa đủ “level” để post hình thì dẫn link thôi, Đạt sẽ giúp up hình lên.

LoveJav viết 20:11 ngày 30/09/2018

Em chưa xây dựng xong phương thức khách hàng và bán lẻ. Tương tự như Nhân Viên.
Khi em click vào nhân viên em để nó chạy ra 1 frame khác. Giờ em muốn cái Admin manager này thay thế cho khung màu đỏ.
Anh có thể chỉ giúp em không ạ?

LoveJav viết 20:14 ngày 30/09/2018

Biết là Add frame vào panel . Nhưng chưa làm được =))

Nguyễn Hữu Quyền viết 20:27 ngày 30/09/2018

Dễ lắm bạn ạ, bạn chỉ cần tạo các phần ấy thành các panel độc lập cụ thể là các lớp extend JPanel , rồi khi nào dùng cái nào thì bạn add vào thôi . Ví dụ cụ thể trường hợp của bạn nhé .

Bạn sẽ tạo một đối tượng là ViewPanel chính là cái khung màu đỏ ấy, đối tượng ViewPanel sẽ được add vào một JFrame chính(MainFrame) , chính là khung phần mền của bạn , lúc này bạn chia các của sổ như Bán hàng , Admin , v.v , bạn gói thành các JPanel con (Trong công việc thì gọi là Component) , ban đầu bạn cho add vào ViewPanel một Panel con bất kỳ mà bạn muốn. Sau đó bạn tạo một SelectPanel ( chính là bảng chọn bên tay trái) , add các EventListener vào các button khi nhấn vào button nào thì bạn sẽ xóa các component trong ViewPanel đi rồi add các component tương ứng với button vào sau đó gọi phương thức repaint() của ViewPanel để hiển thị lại Component mới là xong , đúng ý đồ của bạn

Một chú ý quan trọng đó là mình luôn chia nhỏ ra để làm và dễ quản lí. SelectPanel và ViewPanel đều được quản lí trong Class MainFrame , chỉ khi tổ chức thế này bạn mới dễ dàng để chúng tương tác với nhau được.

Chúc bạn thành công.

LoveJav viết 20:21 ngày 30/09/2018

Cảm ơn bạn trước, trong quá trình làm có gì bạn chỉ mình tiếp nhé.

Nguyễn Anh Dũng viết 20:26 ngày 30/09/2018

mình tạo 1 biến toàn cục JPanel pnAction,sau đó sử dụng phương thức actionPerformed cho từng JButton:
pnAction = new SelectPanel(); viewPanel.removeAll(); viewPanel.add(pnAction); viewPanel.validate();
với điều kiện viewPanel setLayout Border để nó sẽ map vừa với từng JPanel thiết kế kích thước khác nhau

Bài liên quan
0