MỤC LỤC
LỜI NÓI ĐẦU...........................................................................................3
CHƯƠNG 1. GIỚI THIỆU VỀ NGÔN NGỮ JAVA...................................4
1.1.Giới thiệu về java............................................................................4
1.2.Đặc điểm và tính năng của java......................................................4
1.3.Giới thiệu về AWT...........................................................................5
1.3.1. BorderLayout............................................................................5
1.3.2. Xử lý các sự kiện......................................................................6
1.3.3. Thực đơn (menu).....................................................................9
1.4.Giới thiệu về SWING.....................................................................11
1.4.1.Lớp JFrame.............................................................................11
1.4.2.Lớp JLabel...............................................................................12
1.4.3.Lớp JPanel..............................................................................14
1.4.4. Lớp JOptionPane...................................................................15
1.4.5.Gói Timer.................................................................................19
CHƯƠNG 2. THIẾT KẾ GAME XẾP HÌNH...........................................20
2.1.Mô tả hoạt động của game............................................................20
2.2.Biểu đồ chức năng của game.......................................................20
2.3.Biểu đồ ngữ cảnh..........................................................................21
2.4.Chiến lược chơi.............................................................................22
CHƯƠNG 3.CÀI ĐẶT VÀ THỬ NGHIỆM..............................................23
1
3.1.Tạo menu......................................................................................23
3.2.Lớp tạo các khối gạch và xoay hình các khối gạch.......................28
3.3.Lớp điều khiển các khối gạch và xử lý các hoạt động..................31
KẾT LUẬN.............................................................................................42
TÀI LIỆU THAM KHẢO.........................................................................43
2
LỜI NÓI ĐẦU
Ngày nay, Công nghệ thông tin là một trong những ngành đang phát triển rất mạnh
mẽ và có ảnh hưởng sâu rộng đến mọi mặt đời sống. Nó là nền tảng của nền kinh tế tri
thức, là thước đo trình độ phát triển của một quốc gia.Vì vậy, việc đào tạo đội ngũ kỹ
sư công nghệ thông tin có chất lượng đòi hỏi phải được chú trọng và đầu tư đúng mức.
Xã hội và kinh tế phát triển đòi hỏi công nghệ cũng phải phát triển. Công nghệ
phát triển, con người ngày càng phát minh ra những thiết bị công nghệ số thông minh
giúp đỡ con người về rất nhiều mặt trong cuộc sống. Trong thời đại ngày nay, đất
nước ta đang hội nhập vào WTO cùng với sự phát triển nhanh chóng của công nghệ
thông tin được áp dụng trên mọi lĩnh vực của cuộc sống như kinh tế, chính trị, văn hóa
xã hội, tất cả đều cần có công nghệ thông tin. Như hiện nay chúng ta đã biết lập trình
và thiết kế game có thể được coi là ngành “ hot ” mà hiện nay chúng ta đang rất quan
tâm. Ngày nay xã hội phát triển nhu cầu về việc giải trí ngày càng cao. Nắm được nhu
cầu đó em đã quyết định chọn đề tài: “Lập trình Game MegaMan sử dụng ngôn
ngữ lập trình Java” cho đợt thực tập chuyên ngành lần này. Trong quá trình triển khai
đề tài có gặp một số vướng mắc nhưng đã được cô giáo hướng dẫn giúp đỡ nên đề tài đã
hoàn thành đúng thời hạn và kết quả ban đầu cũng khá hoàn thiện.
Em xin chân thành cảm ơn giáo viên hướng dẫn cô: NGÔ THỊ VINH đã giúp đỡ và
chỉ dẫn em hoàn thành bài báo cáo này.
Nội dung báo cáo:
Bao gồm 3 chương:
Chương 1: Giới thiệu về ngô ngữ java.
Chương 2: Thiết kế game Xếp hình.
Chương 3: Cài đặt và thử nghiệm.
Thái nguyên, tháng 04 năm 2016
3
CHƯƠNG 1. GIỚI THIỆU VỀ NGÔN NGỮ JAVA
1.1.Giới thiệu về java
Java là ngôn ngữ lập trình máy tính có tính chất hướng đối tượng, dựa trên các lớp,
thường được sử dụng cho các hệ thống có tính độc lập cao. Nó được sử dụng để
hướng tới các lập trình viên viết ứng dụng "write one, run everywhere" (viết một lần,
chạy mọi nơi, nghĩa là đoạn code Java sau khi được biên dịch có thể chạy được trên
tất cả các nền tảng hỗ trợ Java mà không cần phải được biên dịch lại. Các ứng dụng
Java sau khi đã được biên dịch thành bytecode có thể chạy trên bất kỳ máy ảo Java
nào (Java virtual machine)
Java được viết bởi James Gosling tại Sun MicroSystems và được phát hành năm
1995. Cú pháp ban đầu của Java được dựa nhiều vào cú pháp của ngôn ngữ C và C++
Cho đến năm 2015, Java là một trong những ngôn ngữ được dùng phổ biến nhất
trên thế giới, đặc biệt cho các ứng dựng web client- server. Theo thống kê trên thế giới
có khoảng 9 triệu lập trình viên Java.
1.2.Đặc điểm và tính năng của java
Java có rất nhiều đặc điểm và tính năng nổi bật. Dưới đây là một số đặc điểm của
Java mà bạn có thể dễ dàng biết và tìm hiểu:
Đơn giản
Hướng đối tượng
Độc lập nền tảng
Bảo mật
Robust
Độc lập cấu trúc
Portable
Dynamic
Thông dịch
Hiệu suất cao
Đa luồng (Multi-thread)
Distributed
4
1.3.Giới thiệu về AWT
AWT là viết tắt của Abstract Windowing Toolkit. AWT là một bộ các lớp trong Java
cho phép chúng ta tạo GUI và chấp nhận các nhập liệu của người dùng thông qua bàn
phím và chuột. AWT cung cấp các thành phần khác nhau để tạo GUI hiệu quả và lôi
cuốn người sử dụng. Các thành phần này có thể là:
Vật chứa (Container)
Thành phần (Component)
Trình quản lý cách trình bày (Layout manager)
Đồ họa (Graphic) và các tính năng vẽ (draw)
Phông chữ (Font)
Sự kiện (Event)
1.3.1. BorderLayout
‘BorderLayout’ là layout manager mặc định cho ‘Window’, ‘Frame’ và ‘Dialog’.
Layout này sắp xếp tối đa 5 thành phần trong một container. Những thành phần này có
thể được đặt ở các hướng ‘North’, ‘South’, ‘East’, ‘West’ và ‘Center’ của container.
NORTH – Đặt ở đỉnh của container.
EAST – Đặt phía bên phải của container.
SOUTH – Đặt ở phía dưới của container.
WEST – Đặt phía bên trái của container.
CENTER – Đặt ở giữa của container.
Để thêm một thành phần vào vùng ‘North’, bạn sử dụng cú pháp sau:
Button b1=new Button(“North Button”); // khai báo thành phầần
setLayout(new BorderLayout()); // thiếết l ập layout
add(b1,BorderLayout.NORTH); // thếm thành phầần vào layout
Các thành phần vẫn giữ nguyên vị trí tương đối của chúng kể cả khi container bị
thay đổi kích thước. Các thành phần được đặt trong vùng ‘North’, ‘South’ được dàn
nằm ngang trong khi đó các thành phần đặt trong vùng ‘East’ và ‘West’ lại được dàn
5
thẳng đứng. Các thành phần được đặt trong vùng ‘center’ sẽ được dàn đều vào những
khu vực nằm giữa của container.
add(b2,BorderLayout.CENTER); // thêm thành phần vào vùng ‘center’
Khi tất cả các thành phần được đặt vào các vùng tương ứng, lúc đó Frame sẽ giống
như sau:
BorderLayout có thể chứa nhiều hơn 5 thành phần. Để thực hiện điều này, chúng ta
có thể sử dụng các Panel với các layout khác nhau để chứa các thành phần, và sau đó
đặt các panel này vào trong BorderLayout.
1.3.2. Xử lý các sự kiện
Các hệ thống GUI xử lý các tương tác người dùng với sự trợ giúp của mô hình
hướng sự kiện (event-driven). Tương tác của người dùng có thể là di chuyển chuột,
nhấn phím, nhả phím v.v…Tất cả các thao tác này thiết lập một sự kiện của một loại
nào đó.
Việc xử lý những sự kiện này phụ thuộc vào ứng dụng. Abstract Windowing Toolkit
(AWT) xử lý một vài sự kiện. Môi trường mà các ứng dụng này được thi hành ví dụ
như trình duyệt cũng có thể xử lý các sự kiện khác. Người lập trình cũng cần phải xử
lý những sự kiện nhất định và cần phải viết hàm xử lý các sự kiện đó.
Ứng dụng cần đăng ký một hàm xử lý sự kiện với một đối tượng. Hàm xử lý sự kiện
này sẽ được gọi bất cứ khi nào sự kiện tương ứng phát sinh. JDK1.2 làm việc theo mô
hình xử lý sự kiện này.
Trong quy trình này, ứng dụng cho phép bạn đăng ký các phương thức (handler),
hay gọi là listener với các đối tượng. Những handler này tự động được gọi khi một sự
kiện thích hợp phát sinh.
Một Event Listener lắng nghe một sự kiện nào đó mà một đối tượng đã thiết lập.
6
Mỗi event listener cung cấp các phương thức xử lý những sự kiện này. Lớp thi hành
listener cần phải định nghĩa những phương thức này. Để sử dụng mô hình này, bạn
làm theo các bước sau:
Cài đặt giao diện listener thích hợp. Cấu trúc như sau:
public class MyApp extends Frame implements ActionListener
Xác định tất cả các thành phần tạo ra sự kiện. Các thành phần có thể là các
button, label, menu item, hay window.
Cho ví dụ, để đăng ký một thành phần với listener, ta có thể sử dụng:
exitbtn.addActionListener(This);
Xác định tất cả các sự kiện được xử lý. Các sự kiện có thể là một ‘ActionEvent’ nếu
một button được click hay một ‘mouseEvent’ nếu như chuột được kéo đi.
Thi hành các phương thức của listener và viết hàm xử lý sự kiện tương ứng với các
phương thức.
Bảng sau đây chỉ ra các sự kiện khác nhau và mô tả về chúng:
7
Lớp sự kiện
ActionEvent
Mô tả
Phát sinh khi một button được nhấn, một item trong danh
sách chọn lựa được nhấn đúp (double-click) hay một menu
AdjustmentEvent
ComponentEvent
được chọn.
Phát sinh khi một thanh scrollbar được sử dụng.
Phát sinh khi một thành phần được thay đổi kích thước,
FocusEvent
được di chuyển, bị ẩn hay làm cho hoạt động được.
Phát sinh khi một thành phần mất hay nhận focus từ bàn
ItemEvent
phím.
Phát sinh khi một mục menu được chọn hay bỏ chọn; hay
khi một checkbox hay một item trong danh sách được
WindowEvent
click.
Phát sinh khi một cửa sổ được kích hoạt, được đóng, được
TextEvent
mở hay thoát.
Phát sinh khi giá trị trong thành phần textfield hay textarea
MouseEvent
bị thay đổi.
Phát sinh khi chuột di chuyển, được click, được kéo hay
KeyEvent
thả ra.
Phát sinh khi bàn phím ấn, nhả.
Các giao diện cần được cài đặt để xử lý một trong số những sự kiện này là:
ActionListener
AdjustmentListener
ComponentListener
FocusListener
ItemListener
WindowListener
TextListener
MouseListener
MouseMotionListener
KeyListener
8
Các giao diện định nghĩa một số phương thức để xử lý mỗi sự kiện. Những phương
thức này sẽ được nạp chồng trong lớp mà cài đặt những giao diện này.
Chương trình sau đây sử dụng một ActionListener để xử lý các sự kiện liên quan
với một button. ActionEvent có hai phương thức:
getSource(): Để trả về nguồn của sự kiện.
toString(): Để trả về chuỗi tương đương với sự kiện.
Cây phân cấp các lớp của gói event.
Object
java.util.EventObject
Java.awt.Event
ActionEvent
AdjustmentEvent
ContainerEvent
ComponentEvent
InputEvent
KeyEvent
FocusEvent
ItemEvent
WindowEvent
MouseEvent
1.3.3. Thực đơn (menu)
Ngôn ngữ Java có một tập hợp các lớp đối tượng để tạo các menu. Có hai loại menu
– pull down và pop-up. Menu làm cho ứng dụng ta xây dựng dễ sử dụng hơn. Ta chỉ
có đặt duy nhất một thanh menubar trong một frame. Menubar là một thanh nằm
ngang được đặt tại đỉnh của frame. Nó liệt kê các mục chọn khác nhau hay còn gọi là
menu. Một menu độc lập có thể chứa các mục chọn con, các mục con này được gọi là
Menu Item. Java cung cấp các Checkbox MenuItem, chúng có thể được bật hay mở,
phụ thuộc vào trạng thái.
9
Hình ví dụ về Pull-down Menu
Một menu có thể chứa các menu con. Khi bạn click vào trình đơn Help, 3 mục con
có tên là Content, Index và Find sẽ xuất hiện. Trong trình đơn Find, có 2 mục con là
Search by name và Search from Cache. Mặt khác một pop-up menu sẽ hiện ra nếu bạn
nhấn chuột phải trên màn hình:
Hình ví dụ về Pop-up menu
Các mục chọn được trình bày trên pop-up menu là Read-Only và Format text. Mục
‘Format text’ có 2 mục con là Insert và Overtype. Những mục chọn con này thuộc
kiểu CheckboxMenuItem. Khi bạn click vào mục chọn, nó sẽ được đánh dấu và bạn
có thể thấy dấu chọn tương ứng trên mục được chọn đó. Ngôn ngữ Java cung cấp các
10
lớp khác nhau. Những lớp này được sử dụng để tạo thanh Menubar, Menu, MenuItem
và CheckboxMenuItem trong chương trình.
1.4.Giới thiệu về SWING
Java Swing là một phần của Java Foundation Classes (JFC) được sử dụng để tạo
các ứng dụng Window-Based. Nó được xây dựng ở trên cùng của AWT (Abstract
Windowing Toolkit) API và được viết hoàn toàn bằng Java.
Không giống AWT, Java Swing cung cấp các thành phần (Component) gọn nhẹ và
độc lập nền tảng. Javax.swing. Package cung cấp các lớp cho Java Swing chẳng hạn
như
JButton,
JTextField,
JTextArea,
JRadioButton,
JCheckbox,
JMenu,
JColorChooser, …
1.4.1.Lớp JFrame
Lớp JFrame là một phiên bản kế thừa từ java.awt.Frame mà bổ sung các hỗ trợ cho
cấu trúc thành phần JFC/Swing. Cú pháp khai báo cho lớp javax.swing.JFrame là:
public class JFrame
extends Frame
implements WindowConstants, Accessible, RootPaneContainer
Lớp này kế thừa các phương thức từ các lớp sau:
java.awt.Frame
java.awt.Window
java.awt.Container
java.awt.Component
java.lang.Object
Lớp JFrame này có các constructor sau:
JFrame(): Xây dựng một Frame mới, ban đầu là không nhìn thấy (invisible).
JFrame(GraphicsConfiguration
gc):
Tạo
một
Frame
trong
GraphicsConfiguration đã cho của một thiết bị màn hình và một title trống.
11
JFrame(String title): Tạo một Frame mới, ban đầu là không nhìn thấy
(invisible) với title đã cho.
JFrame(String title, GraphicsConfiguration gc): Tạo một Frame với title đã
cho và GraphicsConfiguration đã cho của một thiết bị màn hình.
1.4.2.Lớp JLabel
Lớp JLabel có thể hiển thị hoặc text, hoặc hình ảnh hoặc cả hai. Các nội dung của
Label được gán bởi thiết lập căn chỉnh ngang và dọc trong khu vực hiển thị của nó.
Theo mặc định, các label được căn chỉnh theo chiều dọc trong khu vực hiển thị. Theo
mặc định, text-only label là căn chỉnh theo cạnh, image-only label là căn chỉnh theo
chiều ngang.
Cú pháp khai báo cho lớp javax.swing.JLabel là:
public class JLabel
extends JComponent
implements SwingConstants, Accessible
Lớp javax.swing.JLabel có một trường là protected Component labelFor.
Constructor của lớp JLabel trong Java Swing
JLabel(): Tạo một instance của JLabel, không có hình ảnh, và với một chuỗi
trống cho title.
JLabel(Icon image): Tạo một instance của JLabel với hình ảnh đã cho.
JLabel(Icon image, int horizontalAlignment): Tạo một instance của JLabel
với hình ảnh và căn chỉnh ngang đã cho.
JLabel(String text): Tạo một instance của JLabel với text đã cho.
JLabel(String text, Icon icon, int horizontalAlignment): Tạo một instance
của JLabel với text, hình ảnh, và căn chỉnh ngang đã cho.
JLabel(String text, int horizontalAlignment): Tạo một instance của JLabel
với text và căn chỉnh ngang đã cho.
Một số phương thức thường được sử dụng của lớp JLabel:
STT
Phương thức & Miêu tả
12
1
void setDisabledIcon(Icon disabledIcon)
Thiết
lập
icon
để
được
hiển
thị
nếu
JLabel
này
là
"disabled"
(JLabel.setEnabled(false))
2
void setDisplayedMnemonic(char aChar)
Xác định displayedMnemonic như là một giá trị char
3
void setDisplayedMnemonic(int key)
Xác định keycode mà chỉ dẫn một mnemonic key
4
void setDisplayedMnemonicIndex(int index)
Cung cấp một hint cho L&F, từ đó ký tự trong text nên được trang trí để biểu diễn
mnemonic
5
void setHorizontalAlignment(int alignment)
Thiết lập sự căn chỉnh nội dung của label theo trục X
6
void setHorizontalTextPosition(int textPosition)
Thiết lập vị trí theo chiều ngang của phần text của label, cân xứng với hình ảnh của
nó
7
void setIcon(Icon icon)
Định nghĩa icon mà thành phần này sẽ hiển thị
8
void setIconTextGap(int iconTextGap)
Nếu cả hai thuộc tính icon và text được thiết lập, thuộc tính này xác định khoảng
trống giữa chúng
9
void setLabelFor(Component c)
Thiết lập thành phần đang gán nhãn cho
10
void setText(String text)
Định nghĩa trường text dòng đơn mà thành phần này sẽ hiển thị
11
void setUI(LabelUI ui)
Thiết lập đối tượng L&F mà biểu diễn thành phần này
12
void setVerticalAlignment(int alignment)
Thiết lập sự căn chỉnh nội dung của label theo trục Y
13
void setVerticalTextPosition(int textPosition)
13
Thiết lập vị trí theo chiều dọc của phần text của label, cân xứng với hình ảnh của nó
14
void updateUI()
Phục hồi thuộc tính UI về một giá trị từ L&F hiện tại
Lớp này kế thừa các phương thức từ các lớp sau:
javax.swing.JComponent
java.awt.Container
java.awt.Component
java.lang.Object
1.4.3.Lớp JPanel
Lớp JPanel là một container chung và gọn nhẹ. Cú pháp khai báo cho
lớp javax.swing.JPanel là:
public class JPanel
extends JComponent
implements Accessible
Lớp này kế thừa các phương thức từ các lớp sau
javax.swing.JComponent
java.awt.Container
java.awt.Component
java.lang.Object
Lớp này bao gồm các constructor sau:
JPanel(): Tạo một JPanel mới với một double buffer và một Flow Layout.
JPanel(boolean isDoubleBuffered): Tạo một JPanel mới với Flow Layout và
trình đệm đã xác định.
JPanel(LayoutManager layout): Tạo một JPanel mới với Layout Manager
đã cho
JPanel(LayoutManager layout, boolean isDoubleBuffered): Tạo một
JPanel mới với Layout Manager đã cho và trình đệm đã xác định.
Các phương thức của lớp JPanel
14
AccessibleContext getAccessibleContext(): Lấy AccessibleContext được
liên kết với JPanel này.
PanelUI getUI(): Trả về đối tượng L&F mà truyền thành phần này
String getUIClassID(): Trả về một chuỗi xác định tên của lớp L&F mà
truyền thành phần này
protected String paramString(): Trả về một biểu diễn chuỗi của JPanel này
void setUI(PanelUI ui): Thiết lập đối tượng L&F mà truyền thành phần này
void updateUI():Phục hồi thuộc tính UI về một giá trị Look và Feel hiện tại.
1.4.4. Lớp JOptionPane
Lớp JOptionPane là một thành phần cung cấp các phương thức chuẩn để popup
một hộp thoại dialog chuẩn cho một giá trị hoặc thông báo người dùng về một cái gì
đó. Dưới đây là cú pháp khai báo của lớp javax.swing.JOptionPane:
public class JOptionPane
extends JComponent
implements Accessible
Lớp này kế thừa các phương thức từ các lớp sau:
javax.swing.JComponent
java.awt.Container
java.awt.Component
java.lang.Object
Các constructor của lớp JOptionPane trong Java Swing
JOptionPane(): Tạo một JOptionPane với một thông điệp kiểm tra (test
message).
JOptionPane(Object message): Tạo một instance của JOptionPane để hiển thị
một message bởi sử dụng kiểu thông điệp thuần message và các tùy chọn
option mặc định được phân phối bởi UI.
JOptionPane(Object message, int messageType): Tạo một instance của
JOptionPane để hiển thị một thông điệp với kiểu thông điệp đã cho và các tùy
chọn mặc định.
15
JOptionPane(Object message, int messageType, int optionType): Tạo một
instance của JOptionPane để hiển thị một thông điệp với kiểu thông điệp đã
cho và các tùy chọn mặc định.
JOptionPane(Object message, int messageType, int optionType, Icon icon):
Tạo một instance của JOptionPane để hiển thị một thông điệp với kiểu thông
điệp, tùy chọn và icon đã cho.
JOptionPane(Object message, int messageType, int optionType, Icon icon,
Object[] options): Tạo một instance của JOptionPane để hiển thị một thông
điệp với kiểu thông điệp, tùy chọn và icon đã cho.
JOptionPane(Object message, int messageType, int optionType, Icon icon,
Object[] options, Object initialValue): Tạo một instance của JOptionPane để
hiển thị một thông điệp với kiểu thông điệp, tùy chọn và icon đã cho với giá trị
tùy chọn được lựa chọn ban đầu đã được xác định.
Các phương thức được sử dụng phổ biến của lớp JoptionPane:
STT Phương thức & Miêu tả
1
void selectInitialValue()
Yêu cầầu giá trị khởi tạo ban đầầu để được lựa chọn, mà sẽẽ thiêết l ập focus t ới giá tr ị
đó
2
void setIcon(Icon newIcon)
Thiêết lập icon để hiển thị
3
void setInitialSelectionValue(Object newValue)
Thiêết lập giá trị input mà được hiển thị ban đầầu như là sẽlẽctẽd tới người dùng
4
void setInitialValue(Object newInitialValue)
Thiêết lập giá trị ban đầầu để được kích hoạt. Đầy là thành phầần mà có focus khi Panẽ
được hiển thị ban đầầu
5
void setInputValue(Object newValue)
Thiêết lập giá trị input mà là sẽlẽctẽd hoặc input bởi người dùng
6
void setMessage(Object newMessage)
16
Thiêết lập đốếi tượng mẽssagẽ của opton panẽ
7
void setMessageType(int newType)
Thiêết lập kiểu thống điệp của opton panẽ
8
void setOptions(Object[] newOptions)
Thiêết lập các tùy chọn mà panẽ này hiển thị
9
void setOptionType(int newType)
Thiêết lập các tùy chọn để hiển thị
10
static voidsetRootFrame(Frame newRootFrame)
Thiêết lập framẽ để sử dụng cho các phương thức lớp mà chưa được cung cầếp
framẽ nào
11
void setSelectionValues(Object[] newValues)
Thiêết lập các giá trị sẽlẽcton cho một panẽ mà cung cầếp cho ng ười dùng m ột danh
sách itẽm để lựa chọn từ đó
12
void setUI(OptionPaneUI ui)
Thiêết lập đốếi tượng UI mà triển khai L&F cho thành phầần này
13
void setValue(Object newValue)
Thiêết lập giá trị mà người dùng đã lựa chọn
14
void setWantsInput(boolean newValue)
Thiêết lập thuộc tnh wantsInput
15
static int showConfirmDialog(Component parentComponent, Object message)
Hiển thị một hộp thoại với các tùy chọn Yẽs, No và Cancẽl với ttlẽ là Sẽlẽct an
Opton
16
static int showConfirmDialog(Component parentComponent, Object message,
String title, int optionType)
Hiển thị một hộp thoại, với sốế tùy chọn được xác định bởi tham sốế optonTypẽ
17
static int showConfirmDialog(Component parentComponent, Object message,
String title, int optionType, int messageType)
Hiển thị một hộp thoại, với sốế tùy chọn được xác định bởi tham sốế optonTypẽ, và
17
tham sốế mẽssagẽTypẽ xác định icon để hiển thị
18
static int showConfirmDialog(Component parentComponent, Object message,
String title, int optionType, int messageType, Icon icon)
Hiển thị một hộp thoại với icon đã cho, với sốế tùy ch ọn được xác đ ịnh b ởi tham sốế
optonTypẽ
19
static String showInputDialog(Component parentComponent, Object message,
Object initialSelectionValue)
Hiển thị một hộp thoại dạng quẽston-mẽssagẽ yêu cầầu input từ người dùng đ ược
tạo ra từ parẽntComponẽnt
20
static String showInputDialog(Component parentComponent, Object message,
String title, int essageType)
Hiển thị một hộp thoại dạng quẽston-mẽssagẽ yêu cầầu input từ người dùng đ ược
tạo ra từ parẽntComponẽnt với hộp thoại có ttlẽ và mẽssagẽTypẽ
21
static Object showInternalInputDialog(Component parentComponent, Object
message, String title, int messageType, Icon icon, Object[] selectionValues, Object
initialSelectionValue)
Gợi ý người dùng nhập input trong một hộp thoại n ội tại, ở đầy s ự lựa ch ọn ban
đầầu, sự lựa chọn có thể có, và tầết cả tùy chọn khác có thể được xác định
22
JDialog createDialog(Component parentComponent, String title)
Tạo và trả vêầ một JDialog mới mà bao quanh optonpanẽ này đ ược căn ch ỉnh vào
giữa parẽntComponẽnt trong framẽ của parẽntComponẽnt
23
JDialog createDialog(String title)
Tạo và trả vêầ một JDialog mới (khống phải là cha) với ttlẽ đã cho
24
JInternalFrame createInternalFrame(Component parentComponent, String title)
Tạo và trả vêầ một instancẽ của JIntẽrnalFramẽ
18
1.4.5.Gói Timer
Gói Swing chứa class Timer hỗ trợ cho việc tạo ra các hiệu ứng có tốc độ được quy
định trước
Swing Timer phát sinh một hoặc nhiều sự kiện ActionEvent sau một khoảng thời
gian xác định.
19
CHƯƠNG 2. THIẾT KẾ GAME XẾP HÌNH
2.1.Mô tả hoạt động của game
Người chơi khi mở trò chơi lên thì sử dụng các phím mũi tên để chơi game:
Phím mũi tên lên: Xoay hình ngược chiều kim đồng hồ
Phím mũi tên xuống: Xoay hình ngược chiều kim đồng hồ
Phím mũi tên bên trái: Đưa hình sang trái
Phím mũi tên bên phải: Đưa hình sang phải
Dấu cách: Tăng độ dơi của hình
Phím P: tạm dừng / tiếp tục trò chơi
Người chơi có thể xem lại phần hướng dẫn này bằng cách kích chuột vào Help
chọn Help contents.
Để chơi màn mới người chơi kích chuột vào File chọn New Game .
Để để thoát game kích chuột vào File chọn Exit
Để xem thông tin người viết game kích chuột vào Help chọn About
2.2.Biểu đồ chức năng của game
20
- Xem thêm -