Để thực hiện các thao tác thông qua chuột, chúng ta sử dụng lớp MouseEvent +Lớp MouseEvent bao gồm các phương thức cơ bản thường dùng sau: . int getX(): trả về tọa độ X của con trỏ chuột, tại vị trí hiện hành. . int getY(): trả về tọa độ Y của con trỏ chuột, tại vị trí hiện hành. . int getButton(): cho biết phím chuột nào được bấm: MouseEvent.Button1, MouseEvent.Button2, MouseEvent.Button3. . int getClickCount(): cho biết số lần bấm phím chuột. +Tìm hiểu về giao diện về MouseListener, chúng ta phải định nghĩa lại các phương thức của giao diện tương ứng với các sự kiện chuột:
Trang 1BÁO CÁO ĐỀ TÀI MÔN: Lập trình hướng đối tượng Tên đề tài: “GAME JAVA”
Tìm hiểu về lý thuyết: “Xử lý sự kiện trên chuột”.
Để thực hiện các thao tác thông qua chuột, chúng ta sử dụng lớp MouseEvent
+Lớp MouseEvent bao gồm các phương thức cơ bản thường dùng sau:
int getX(): trả về tọa độ X của con trỏ chuột, tại vị trí hiện hành
int getY(): trả về tọa độ Y của con trỏ chuột, tại vị trí hiện hành
int getButton(): cho biết phím chuột nào được bấm:
MouseEvent.Button1, MouseEvent.Button2, MouseEvent.Button3
int getClickCount(): cho biết số lần bấm phím chuột
+Tìm hiểu về giao diện về MouseListener, chúng ta phải định nghĩa lại các
phương thức của giao diện tương ứng với các sự kiện chuột:
• public void mouseClicked(MouseEvent e):
Đã nhấn phím chuột( nhấn và thả)
• public void mousePressed(MouseEvent e):
Có phím chuột được bấm
• public void mouseReleased(MouseEvent e):
Thả phím chuột
• public void mouseEntered(MouseEvent e):
Có con trỏ đi vào phạm vi của một thành phần
• public void mouseExited(MouseEvent e):
Con trỏ đi ra khỏi một thành phần
Tìm hiểu sự kiện trên menu
Chúng ta dùng sự kiện Action
Để sự dụng được các sự kiện trên menu chúng sử dụng phương thức
public void actionPerformed(ActionEvent e)
Ví dụ:
public void actionPerformed(ActionEvent e){
If(e.getActionCommand().equals(“Exit”)){
System.exit(0);
}
}
Trang 2Trong ví dụ trên thì khi click vào menu Exit trên thanh thực đơn thì chương trình của ta sẽ thoát
Lưu ý: Cần phải đăng ký sự kiện ActionListener cho Item Exit của thanh menu
Tổng quan sơ lược về chương trình “Game JAVA chọn hình”:
*Giao diện chính được phát thảo sơ lược của game:
*Các bước để phát thảo giao diện như trên:
Trang 3Game được tổ chức bằng một ma trận hai chiều Ma trận này là ma trận các JButton bao gồm 8 dòng và 8 cột
Mỗi JButton sẽ được setImageIcon() mặc định lúc chương trình khởi động( như hình vẽ)
Để thể hiện ma trận JButton này trên giao chính ta thực hiện các bước cơ bản sau:
+ Khởi tạo một JPanel
+ setLayout(new GridLayout(8,8,2,2)) cho JPanel này, tham số truyền vào đối tượng GridLayout() - thể hiện kiểu lưới, gồm 8 dòng và 8 cột, khoảng cách giữa các dòng và các cột là 2
+ Sau đó duyệt qua lần lượt từng phần tử của ma trận đã nói trên, lần lượt đưa từng phần tử của ma trận và JPanel
+ Cuối cùng đưa J Panel vào giao diện chính
Ý tưởng chính và cách chơi:
Người chơi dùng chuột Click vào từng hình ảnh trên giao diện chính, mỗi lần
Click chuột vào hình: thì hình này sẽ chuyển sang hình khác với
hình mặc định, giả sử ta có một hình mới sau khi click vào :
Như vậy sau khi người chơi chọn được 2 hình ảnh sau khi click 2 lần chuột, khi
đó chương trình game sẽ kiểm tra xem 2 hình này có giống nhau hay không, nếu giống nhau thì 2 hình này sẽ tự động biến mất, ngược lại thì 2 hình này sẽ tự
động trở về trạng thái mặc định ban đầu
Và cứ như vậy, chương trình này sẽ kết thúc nếu người chơi tìm hết được tấc cả các cặp giống nhau
Lưu ý:
Khi chơi xong người chơi muốn chơi tiếp thì phải click vào menu “New” để tạo mới
Nói sơ qua ý tưởng của việc tạo mới:
Việc tạo mới chúng ta sẽ sử dụng đến hàm Math.Random()
Trang 4Hàm này sẽ trả về một số thực lớn hơn 0 và nhỏ hơn 1
Ở đây, chúng ta có tấc cả là 64 hình ảnh
Giả sử ta lưu 64 hình ảnh này bằng cách lưu vào mảng 1 chiều có 64 phần tử, mỗi phần tử sẽ lưu một đường dẫn của 1 ảnh
Mặc khác chúng ta có một mảng các số nguyên, mỗi phần tử sẽ lưu một số, số nguyên này sẽ chỉ vị trí của ảnh cần lấy trong mảng 64 hình ảnh
Cụ thể:
String path[]={“h1.png”,”h2.png”,”h3.png”,”h4.png”}; // mảng có 4 ảnh int vt[]= { 3 , 4 , 1 , 2 }; // mảng các số nguyên
Khi đó: để lấy đường dẫn ảnh ra String s=path [ vt [ 0 ] ];
Kết quả trả về là đường dẫn ảnh “h3.png”, ta sẽ có 1 ảnh từ đường dẫn này để setImage() cho JButton khi người chơi Click vào
Sau mỗi lần Click vào menu “New” ta sẽ xáo trộn lại mảng số nguyên trên Giả sử ta thu được mảng số nguyên khác là: int vt[]= { 2 , 4 , 3 , 1 }; Lúc này String s=path [ vt [ 0 ] ]; sẽ không là ảnh cũ nữa mà là ảnh “h2.png” Việc xáo trộn mảng số nguyên ta sẽ dùng đến hàm Math.Random();
Lợi ích của việc chơi game này:
Chơi game này sẽ giúp bạn luyện trí nhớ, tăng khả năng nhớ của bạn, làm cho
nó linh hoạt hơn
Giúp người chơi giải trí nhẹ sau khi học bài căng thẳng
Tuy nhiên, người chơi cũng không nên chơi quá nhiều, bởi vì chơi game nhiều
sẽ ảnh hưởng đến sức khỏe