Java paintComponent() của 2 JPanel khác nhau

Chào mọi người - mình đang tập làm game với java (để hiểu hơn các thư viện) và gặp
phải một vấn đề khi đang làm dở liên quan đến đồ họa. Vấn đề như sau:

Khi mình khai báo đối tượng JPanel Game, tạo 2 extends class Jpanel gồm Menu và Play, rồi khai báo Game = new Menu(Jframe). Khi người dùng bắt đầu chơi, mình lại tiếp tục để là Game = new Play(Jframe). Và vấn đề xảy ra khi nó không thực hiện paintComponent() mới mà lại chạy paintComponent cũ của Menu.

Mình đã thử chạy các hàm và kiểm tra lỗi nhưng chỉ duy nhất paintComponent là không chạy.
Đây là File game Pong của mình. Mong nhận được sự giúp đỡ của mọi người, xin cám ơn.

https://drive.google.com/drive/folders/1JCzzw3x-hG7RzYla3oqgiAvKdF3gnTAy?usp=sharing

(Mình hiếm khi hỏi nếu có sẵn trên mạng nên không rõ việc up source code hoặc các vấn đề về yêu cầu hỗ trợ, nếu được nhắc nhở mình sẽ nhận và sửa chữa. Xin cám ơn)

1 Like

Xin lỗi vì lộn xộn tí. Gồm 4 file chính: Pong.java, State.java, Paddle.java, Ball.java
và lỗi ở file State và Pong, khi mình extends nhưng ko chạy được như mình kể trên.
file Pong sẽ chạy chương trình: java Pong.
Mình cũng làm phức tạp lên vì có chủ ý cố tình tạo ra những lỗi như thế này rồi tự phát triển.

Cẩn thận hơn với this ở file Pong - actionPerformed()
Đã giải quyết!

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?