giáo trình java tóm tắt - awt

26 437 0
giáo trình java tóm tắt - awt

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giáo trình Java tóm tắt AWT AWT AWT 1 1. Giới thiệu 1 2. Container 2 3. Một số control thường dùng 8 4. Layout manager 15 5. Menu 25 1. Giới thiệu 1.1. Về AWT AWT (Abstract Window Toolkit) là một package có sẵn trong JDK (java.awt), nó cung cấp các thành phần cơ bản để xây dựng các ứng dụng GUI (Graphics User Interface – Giao diện Người dùng Đồ họa). Ứng dụng GUI được tạo ra bởi AWT sẽ không phụ thuộc vào hệ điều hành, có nghĩa là chúng sẽ trông như nhau ở mọi loại máy tính. 1.2. Cấu trúc của AWT AWT bao gồm nhiều class cho phép kế thừa, từ đó lập trình viên có thể tạo ra nhiều loại control (thành phần giao diện) đa dạng theo ý mình. Châu Hải Duy 1/26 Giáo trình Java tóm tắt AWT Hình 1: Cấu trúc của AWT Như hình trên, ở cấp cao nhất của AWT có các class như BorderLayout, FlowLayout, MenuComponent, Component, Graphics, Image, Polygon, Dưới đó là các class như Button, Canvas, MenuItem, Trong đó, Component và Container là hai class quan trọng của AWT. Component là lớp cha của nhiều control thường dùng, còn Container là class để chứa các Component khác. 2. Container Container là một dẫn xuất của Component. Các đối tượng Container có khả năng chứa các control khác (hoặc Container khác) bên trong nó. Thông thường, khi cần dùng các Container thì ta sẽ tạo ra class kế thừa từ chúng. 2.1. Các loại Container Có hai loại Container chính, đó là Window và Panel. Trong phần này chủ yếu đề cập tới Window. 2.1.1. Window Window là cửa sổ trên màn hình, là control độc lập nên không thuộc về Container nào. Châu Hải Duy 2/26 Object BorderLayout CardLayout CheckboxGroup Color Dimension Event Font FlowLayout FontMetrics Graphics GridBagLayout GridLayout Image Insets Point Polygon Rectangle Toolkit MenuComponent Component FileDialog Button Canvas Checkbox Choice Container ScrollBar Label List Panel Window ScrollPane Applet Dialog Frame TextComponent TextField TextArea MenuBar MenuItem Menu PopupMenu CheckboxMenuItem AWTException AWTError Exception Error Giáo trình Java tóm tắt AWT Có hai loại Window là Frame và Dialog. a. Frame Frame là loại cửa sổ có thể có menu, có thể cho phép phóng to/thu nhỏ và thay đổi kích thước bằng mouse. Hình 2: AWT Frame b. Dialog Dialog là loại cửa sổ thường không có menu và thường không cho phép phóng to/thu nhỏ hoặc thay đổi kích thước bằng mouse. Dialog có hai trạng thái là modaless (mặc định) hoặc modal. Khi được hiển thị, một modal Dialog sẽ "khóa" hết các cửa sổ khác của ứng dụng cho đến khi ta đóng Dialog đó. Trong hệ điều hành Windows, Dialog không có phần title ở taskbar. Hình 3: AWT Dialog 2.1.2. Panel Khác với Window, Panel là container không thể tồn tại độc lập mà phải thuộc về một container nào đó. Panel là một vùng hình chữ nhật để chứa các control, và buộc phải nằm trên một Window, một cửa sổ trình duyệt web hoặc một Panel khác. Châu Hải Duy 3/26 Giáo trình Java tóm tắt AWT 2.2. Các thao tác cơ bản trên Container 2.2.1. Khởi tạo một Container Bản thân Container chỉ có một phương thức khởi tạo mặc định. Tuy nhiên, các dẫn xuất của Container là Window (gồm Dialog, Frame) và Panel, thì có nhiều phương thức khởi tạo khác nhau. a. Dialog Dialog không có phương thức khởi tạo mặc định. Khi tạo một Dialog, ta cần cho biết owner của nó. Owner của Dialog là một Frame hoặc một Dialog khác. Nếu owner là null thì phương thức khởi tạo sẽ phát sinh IllegalArgumentException. Ngoài ra, còn các phương thức khởi tạo kèm theo title và trạng thái modal của Dialog. Constructor Ý nghĩa Dialog(Dialog owner) Tạo Dialog với owner là một Dialog khác Dialog(Dialog owner, String title) Tạo một Dialog với owner là một Dialog khác và tiêu đề là title. Dialog(Frame owner, String title, boolean modal) Tạo một Dialog với owner là một Dialog khác và tiêu đề là title, và là dạng modal là modalstate. Bảng 1: Một số constructor của Dialog Ta cũng có các phương thức khởi tạo tương tự ứng cho trường hợp owner là một Frame. b. Frame Frame là cửa sổ độc lập nên không có owner. Các constructor của Frame bao gồm: Constructor Ý nghĩa Frame() Tạo một Frame với các giá trị mặc định. Frame(String title) Tạo một Frame với tiêu đề là title. Bảng 2: Một số constructor của Frame c. Panel Như đã nói trên, Panel không thể tồn tại độc lập mà phải thuộc về Container nào đó. Constructor Ý nghĩa Panel() Tạo một Panel với các giá trị mặc định. Panel(LayoutManager layout) Tạo một Panel với LayoutManager có sẵn. Bảng 3: Một số constuctor của Panel Châu Hải Duy 4/26 Giáo trình Java tóm tắt AWT Sau khi tạo xong, cần phải đưa Panel vào một Container khác thì nó mới hoạt động được. 2.2.2. Thêm control vào Container Để thêm control vào Container, ta dùng phương thức add(). Phương thức này có các dạng overloading như sau: Phương thức Ý nghĩa Component add(Component c) Thêm một control vào cuối Container. Component add(Component c,int i) Thêm control c vào vị trí i của Container. Component add(String name,int i) Thêm control có tên là name vào vị trí i của Container. Phương thức này không còn được dùng dùng kể từ JDK 1.1. Bảng 4: Các phương thức add control vào Container Nếu ta thêm control vào một Container đang được hiển thị trên màn hình thì phải gọi phương thức validate để Container tiến hành vẽ lại các control bên trong nó. Nếu cần thêm nhiều control cùng lúc, thì ta chỉ cần gọi validate một lần sau khi thêm control cuối cùng. 2.2.3. Điều chỉnh các thuộc tính của Container Ta có thể thay đổi các thông số như kích thước, vị trí, của Container bằng các phương thức sau: Phương thức Ý nghĩa void setBounds(int x, int y, int width, int height) Đặt vị trí và kích thước của Container. void setLocation(int x, int y) Đặt vị trí của Container, trong đó (x, y) là tọa độ góc trên-trái của Container void setSize(int width, int height) Đặt kích thước của Container, gồm chiều rộng và chiều cao (tính bằng pixel). void setFont(Font f) Đặt kiểu font cho Conatiner. void setLayout(LayoutManager mgr) Đặt LayoutManager cho Container. Đặt null có nghĩa là không dùng LayoutManager. void setVisible(boolean b) Cho phép Container được hiển thị lên màn hình hay không. void setForeground(Color c) Đặt màu cho Container. Bảng 5: Một số phương thức cập nhật của Container Nếu Container là Frame hoặc Dialog, ta có thể dùng thêm các phương thức sau: Châu Hải Duy 5/26 Giáo trình Java tóm tắt AWT Phương thức Ý nghĩa void setTitle(String title) Đặt tiêu đề cho Frame/Dialog. void setResizable(boolean r) Cho phép hoặc không cho phép người dùng chỉnh kích thước của Frame/Dialog bằng mouse. void setSize(int width, int height) Đặt kích thước của Container, gồm chiều rộng và chiều cao (tính bằng pixel). void setFont(Font f) Đặt kiểu font cho Conatiner. void setLayout(LayoutManager mgr) Đặt LayoutManager cho Container. Đặt null có nghĩa là không dùng LayoutManager. Bảng 6: Một số phương thức cập nhật của Frame và Dialog Với Dialog, ta còn có thể cập nhật trang thái modal của nó bằng phương thức void setModal(boolean b). 2.2.4. Bố trí control trên Container Trong Container, các control được sắp đặt dựa vào LayoutManager. Tuy nhiên, ta cũng có thể tự sắp đặt "thủ công" bằng cách disable LayoutManager của Container. Cách dùng LayoutManager sẽ được trình bày sau. Để disable LayoutManager, ta chỉ cần đặt LayoutManager của Container về null. this.setLayout(null); Sau đó, ta sẽ dùng phương thức setLocation để xác định tọa độ cho từng control trên Container. Sau khi đã sắp đặt xong, ta sẽ gọi hiển thị Container bằng phương thức setVisible hoặc show. 2.2.5. Ví dụ Để dùng AWT, ta phải import package AWT vào các file source code: import java.awt.*; Tạo Frame: ta sẽ tạo một class mới là Frame01 kế thừa từ Frame chuẩn. Trong phương thức khởi tạo mặc định của Frame01, ta sẽ điều chỉnh các thông số như tiêu đề, vị trí, kích thước cho phù hợp. Sau đó sẽ thêm một Panel vào Frame. // Khai báo Frame01 kế thừa từ Frame public class Frame01 extends Frame { private Panel pn=new Panel(); // Tạo một Panel public Frame01() { this.setLayout(null); // Không dùng layout manager Châu Hải Duy 6/26 Giáo trình Java tóm tắt AWT this.setTitle("AWT Frame"); // Đặt tiêu đề cho Frame this.setSize(450,400); // Đặt kích thước cho Frame this.setLocation(100,100); // Đặt vị trí cho Frame pn.setSize(150,80); // Đặt kích thước: rộng 150, cao 80 pn.setLocation(50,50); // Đặt vị trí: cột 50, dòng 50 pn.setBackground(Color.cyan); // Panel màu xanh lơ this.add(pn); // Thêm Panel vào Frame } } Tạo Dialog: Tương tự như trên, ta sẽ tạo ra một class là Dialog01 kế thừa từ Dialog chuẩn. Owner của Dialog này sẽ là Frame vừa tạo ở trên. Sau khi tạo, ta sẽ chỉnh tiêu đề, vị trí, kích thước rồi thêm vào nó một Label và một Button. public class Dialog01 extends Dialog { private Button bt=new Button(); private Label lb=new Label(); public Dialog01(Frame frm) { super(frm); // Gọi constructor của Dialog this.setLayout(null); // Không dùng LayoutManager this.setSize(300,150); this.setTitle("AWT Dialog"); this.setLocation(150,300); this.setResizable(false); // Không cho user chỉnh size lb.setSize(200,20); lb.setText("Day la mot AWT Label!"); lb.setLocation(50,60); lb.setAlignment(Label.CENTER);// Canh giữa text của Label bt.setSize(50,20); bt.setLabel("OK"); // Đặt text cho Button bt.setLocation(125,100); add(lb); add(bt); } } Gọi hiển thị Frame và Dialog vừa tạo: public class AWT01 { public static void main(String[]args) { Frame01 frm = new Frame01(); frm.setVisible(true); // Hiển thị Frame frm lên màn hình Dialog01 dlg = new Dialog01(frm); // frm là owner của dlg dlg.show(); // Hiển thị Dialog dlg lên màn hình } Châu Hải Duy 7/26 Giáo trình Java tóm tắt AWT } Kết quả như sau: Hình 4: Kết quả chạy ví dụ Tuy nhiên, khi nhấn thử các nút thì ta không thấy tác dụng gì. Để các nút nhấn hoạt động được, ta phải thêm các phương thức xử lý cho những sự kiện của chúng. Cách xử lý sự kiện sẽ được trình bày trong phần sau. 3. Một số control thường dùng 3.1. Tổng quát Để tạo một control và đưa nó lên màn hình, dù nó thuộc loại nào, thông thường ta phải qua các bước sau (ở đây chưa nói tới việc dùng LayoutManager):  Khai báo và khởi tạo control (bằng từ khóa new).  Đặt text cho control (nếu có) bằng constructor hoặc phương thức setText(String s) / setTitle(String s).  Chỉnh kích thước của control bằng phương thức setSize(int w, int h).  Chỉnh vị trí của control bằng phương thức setLocation(int x, int y).  Thêm control vào một Container bằng phương thức add(Component c). 3.2. Label Label là control thường được dùng để thể hiện một câu thông báo lên màn hình. Người dùng không thay đổi được nội dung của Label. Các phương thức / constructor cần lưu ý: Châu Hải Duy 8/26 Giáo trình Java tóm tắt AWT Phương thức / Constructor Ý nghĩa Label() Tạo Label với giá trị mặc định. Label(String text) Tạo Label với text biết trước Label(String text, int alignment) Tạo Label với text và kiểu canh lề biết trước int getAlignment() Trả về kiểu canh lề của Label, gồm:  Label.LEFT (mặc định)  Label.RIGHT  Label.CENTER String getText() Trả về text của Label. void setAlignment(int alignment) Đặt kiểu canh lề cho Label, gồm:  Label.LEFT (mặc định)  Label.RIGHT  Label.CENTER void setText(String text) Đặt text cho Label. Bảng 7: Các phương thức chính của Label Tạo Label và thêm nó vào một Container: Label lb = new Label(); // Tạo một Label lb.setSize(200,20); // Chỉnh kích thước của label lb.setText("Day la mot AWT Label!"); // Chỉnh text của label lb.setLocation(50,60); // Chỉnh vị trí của label lb.setAlignment(Label.CENTER); // Canh giữa text của Label this.add(lb); // Thêm label vào "this" Kết quả: Hình 5: AWT Label 3.3. Button Button là nút lệnh, dùng để báo cho chương trình biết cần phải làm một công việc nào đó. Các phương thức / constructor cần lưu ý: Phương thức / Constructor Ý nghĩa Button() Tạo Button với giá trị mặc định. Button(String label) Tạo Button với nhãn biết trước String getLabel() Trả về nhãn của Button. Châu Hải Duy 9/26 Giáo trình Java tóm tắt AWT Phương thức / Constructor Ý nghĩa void setLabel(String text) Đặt nhãn cho Button. Bảng 8: Các phương thức chính của Button Ví dụ: Button bt=new Button("OK"); // Tạo button với nhãn là "OK" bt.setSize(50,25); // Chỉnh kích thước cho button bt.setLocation(125,100); // Chỉnh vị trí cho button this.add(bt); // Thêm button vào "this" Kết quả: Hình 6: AWT Button 3.4. TextField TextField được dẫn xuất từ TextComponent, là control cho phép người dùng nhập dữ liệu, ví dụ như họ tên, năm sinh, Kiểu dữ liệu của TextField là chuỗi, nên ta cần chuyển đổi nếu muốn dùng TextField để nhập dữ liệu kiểu số. Lưu ý: TextField chỉ cho nhập liệu trên một dòng, nghĩa là không cho phép xuống dòng. Các phương thức / constructor cần lưu ý: Phương thức / Constructor Ý nghĩa TextField() Tạo TextField với giá trị mặc định. TextField(String label) Tạo TextField với nhãn biết trước. String getText() Trả về text của TextField. void setEditable(boolean b) Cho phép hoặc không cho phép người dùng thay đổi nội dung của TextField. String getSelectedText() Trả về đoạn text đang được chọn. int getSelectionStart() Trả về vị trí bắt đầu chọn khối. int getSelectionEnd() Trả về trí kết thúc chọn khối. void setText(String text) Đặt text cho TextField. void setSelectionStart(int start) Đặt vị trí bắt đầu chọn khối. void setSelectionStart(int end) Đặt vị trí kết thúc chọn khối. Bảng 9: Các phương thức chính của TextField Châu Hải Duy 10/26 [...]... dùng BorderLayout Khi resize frame: các Button tự động resize theo Châu Hải Duy 18/26 Giáo trình Java tóm tắt AWT Hình 17: Frame dùng BorderLayout sau khi resize Chỉnh khoảng trống giữa các vùng: dùng constructor thứ hai this.setLayout(new BorderLayout(4,7)); Kết quả: Hình 18: BorderLayout với khoảng cách ngang-dọc là 4-7 pixel 4.3 Lớp FlowLayout Layout manager này đặt các control thành hàng ngang, canh... định như sau:  FlowLayout.CENTER: Châu Hải Duy canh giữa (mặc định) 19/26 Giáo trình Java tóm tắt AWT  FlowLayout.LEADING: canh từ đầu dòng, nếu dùng kiểu trình bày từ trái qua phải thì đầu dòng sẽ là bên trái  FlowLayout.LEFT:  FlowLayout.RIGHT:  FlowLayout.TRAILING: canh trái canh phải canh từ cuối dòng, nếu dùng kiểu trình bày từ trái qua phải thì đầu dòng sẽ là bên phải Để tạo ra một flow layout,... với chuỗi "3" (đã add lúc trước) cl.show(this,"3"); Kết quả: Châu Hải Duy 22/26 Giáo trình Java tóm tắt AWT Hình 24: Frame với button thứ 3 được hiển thị 4.5 Lớp GridBagLayout Đây là một layout manager rất mạnh, tuy nhiên việc sử dụng layout manager này khá phức tạp nên không tiện trình bày ở đây Chi tiết xin xem trong Java API Documents Trong thực tế, ta có thể phối hợp các layout manager ở trên thay.. .Giáo trình Java tóm tắt AWT Ví dụ: TextField tf=new TextField("Nguyen Van Teo"); tf.setSize(200,22); tf.setLocation(30,100); /* tf.setEditable(false); */ // Không cho người dùng sửa nội dung this.add(tf); Kết quả: Hình 7: AWT TextField Nếu ta không cho phép người dùng sửa nội dung, TextField sẽ có dạng sau: Hình... sinh sự kiện ItemEvent Bảng 10: Các phương thức chính của Choice Ví dụ: Choice c=new Choice(); c.setSize(50,22); Châu Hải Duy 11/26 Giáo trình Java tóm tắt AWT c.setLocation(50,100); for (float i=0;i . Giáo trình Java tóm tắt AWT AWT AWT 1 1. Giới thiệu 1 2. Container 2 3. Một số control thường dùng 8 4. Layout manager 15 5. Menu 25 1. Giới thiệu 1.1. Về AWT AWT (Abstract Window. của AWT AWT bao gồm nhiều class cho phép kế thừa, từ đó lập trình viên có thể tạo ra nhiều loại control (thành phần giao diện) đa dạng theo ý mình. Châu Hải Duy 1/26 Giáo trình Java tóm tắt AWT Hình. 2/26 Object BorderLayout CardLayout CheckboxGroup Color Dimension Event Font FlowLayout FontMetrics Graphics GridBagLayout GridLayout Image Insets Point Polygon Rectangle Toolkit MenuComponent Component FileDialog Button Canvas Checkbox Choice Container ScrollBar Label List Panel Window ScrollPane Applet Dialog Frame TextComponent TextField TextArea MenuBar MenuItem Menu PopupMenu CheckboxMenuItem AWTException AWTError Exception Error Giáo trình Java tóm tắt AWT Có hai loại Window là Frame và Dialog. a. Frame Frame là loại

Ngày đăng: 24/10/2014, 00:34

Từ khóa liên quan

Mục lục

  • 1. Giới thiệu

    • 1.1. Về AWT

    • 1.2. Cấu trúc của AWT

    • 2. Container

      • 2.1. Các loại Container

        • 2.1.1. Window

          • a. Frame

          • b. Dialog

          • 2.1.2. Panel

          • 2.2. Các thao tác cơ bản trên Container

            • 2.2.1. Khởi tạo một Container

              • a. Dialog

              • b. Frame

              • c. Panel

              • 2.2.2. Thêm control vào Container

              • 2.2.3. Điều chỉnh các thuộc tính của Container

              • 2.2.4. Bố trí control trên Container

              • 2.2.5. Ví dụ

              • 3. Một số control thường dùng

                • 3.1. Tổng quát

                • 3.2. Label

                • 3.3. Button

                • 3.4. TextField

                • 3.5. Choice

                • 3.6. Checkbox

                • 3.7. List

                • 4. Layout manager

                  • 4.1. Lớp GridLayout

Tài liệu cùng người dùng

Tài liệu liên quan