Giới thiệu về AWT Abstract Windowing Toolkit

35 957 3
Giới thiệu về AWT Abstract Windowing Toolkit

Đ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

Abstract Windowing Toolkit

Chương AWT Sau học xong chương này, bạn nắm nội dung sau:      Hiểu AWT Sử dụng Component Sử dụng Container Sử dụng Layout Manager Xử lý kiện với Component 5.1 Giới thiệu AWT Các ứng dụng phần mềm vô thân thiện trình bày nhiều hình giao diện đồ họa đẹp mắt Các ngơn ngữ lập trình cung cấp đối tượng đồ họa, chúng điều khiển người lập trình viên, hay người sử dụng Một số kết quan trọng ngơn ngữ dựa Giao diện người dùng đồ họa (Graphical User Interface - GUI) Trong chương này, ta thảo luận Java hỗ trợ tính GUI thi hành chúng GUI cung cấp chức nhập liệu theo cách thân thiện với người dùng GUI biến đổi từ ứng dụng đến ứng dụng chứa nhiều điều khiển textbox, label, listbox hay điều khiển khác Các ngôn ngữ lập trình khác cung cấp nhiều cách khác để tạo GUI Các phần mềm giống VB hay VC++ cung cấp chức kéo thả phần mềm giống C++ yêu cầu người lập trình phải viết tồn mã để xây dựng GUI Một phần tử (element) GUI thiết lập cách sử dụng thủ tục sau:     Tạo element, instance, checkbox, label, hay listbox Xác định xuất khởi đầu phần tử Quyết định xem phần tử có nên chiếm giữ vị trí hay khơng Thêm phần tử vào giao diện hình Một thành phần (component) GUI đối tượng trực quan Người dùng tương tác với đối tượng thông qua trỏ chuột hay bàn phím Các thành phần button, label v.v… nhìn thấy hình Bất kỳ thao tác áp dụng đến tất thành phần GUI tìm thấy lớp đối tượng Component Để tạo thành phần GUI này, cần sử dụng lớp tồn gói java.awt AWT có nghĩa Abstract Windowing Toolkit AWT lớp Java cho phép tạo GUI chấp nhận nhập liệu người dùng thơng qua bàn phím chuột AWT cung cấp item khác để tạo GUI hiệu lơi người sử dụng Các item là:  Thùng chứa (Container) Chương 5: AWT      Thành phần (Component) Trình quản lý cách trình bày (Layout manager) Đồ họa (Graphic) tính vẽ (draw) Phơng chữ (Font) Sự kiện (Event) Gói AWT chứa lớp, giao diện gói khác Hình sau mơ tả phần nhỏ hệ thống phân cấp lớp AWT Object CheckboxGroup MenuComponent Component BorderLayout FlowLayout GridLayout Hình 5.1 Hệ thống phân cấp lớp AWT 5.2 Container Container vùng mà bạn đặt thành phần bạn vào Bất vật mà kế thừa từ lớp Container container Applet container, applet dẫn xuất từ panel, lớp panel lại dẫn xuất từ lớp Container Một container chứa nhiều phần tử, phần tử vẽ hay tơ màu tuỳ thích Bạn xem container cửa sổ Đã cửa sổ phải có khung (frame), pane, latch, hook, thành phần có kích thước nhỏ Gói java.awt chứa lớp gọi Container Lớp trực tiếp hay gián tiếp phát sinh hai container sử dụng phổ biến Frame Panel Frame Panel container thường sử dụng Frame cửa sổ tách riêng ngược lại panel vùng chứa cửa sổ Panel khơng có đường viền, chúng trình bày cửa sổ trình duyệt hay appletviewer cung cấp Appletviewer công cụ JDK hỗ trợ để xem applet Frame lớp Window Chúng trình bày cửa sổ độc lập, cửa sổ có chứa đường viền xung quanh 5.2.2 Frame Frame không phụ thuộc vào applet trình duyệt Frame hoạt động container hay thành phần (component) Bạn sử dụng constructor sau để tạo frame:  Frame(): Tạo frame vơ hình (khơng nhìn thấy được)  Frame(String, title): Tạo frame với nhan đề trống Core Java Chương trình 5.1 minh hoạ cách tạo Frame Chương trình 5.1 import java.awt.*; class FrameDemo extends Frame { public FrameDemo(String title) { super(title); } public static void main(String args[]) { FrameDemo f=new FrameDemo(“I have been Frameed!!!”); f.setSize(300,200); f.setVisible(true); } } Lớp định nghĩa Framedemo lớp lớp Frame Lớp FrameDemo có constructor, contructor ta cho gọi hàm super() Tiến trình gọi constructor lớp (trong trường hợp frame) Mục đích super() gọi constructor lớp cha mẹ Tiến trình tạo đối tượng lớp con, lớp tạo frame Thêm vào đó, cho phép đối tượng frame nhìn thấy thơng qua phạm vi lớp Tuy nhiên, frame khơng nhìn thấy khơng có kích thước Để làm điều này, ta sử dụng hai phương thức nằm phương thức main: setSize() setVisible() Kết xuất chương trình giống hình 5.2 Hình 5.2 Frame 5.2.2 Panel Panel sử dụng để nhóm số thành phần lại với Cách đơn giản để Chương 5: AWT tạo panel sử dụng hàm constructor nó, hàm Panel() Chương trình 5.2 cách tạo panel: Chương trình 5.2 import java.awt.*; class Paneltest extends Panel { public static void main(String args[]) { Paneltest p=new Paneltest(); Frame f=new Frame(“Testing a Panel”); f.add(p); f.setSize(300,200); f.setVisible(true); } public Paneltest() { } } Panel khơng thể nhìn thấy trực tiếp Do đó, cần thêm panel đến frame Vì ta cần tạo frame thêm Panel tạo vào Tuy nhiên, frame khơng nhìn thấy được, khơng có kích thước Chúng ta sử dụng hai phương thức phương thức main – setSize() setVisible() để thiết lập kích thước hiển thị frame Kết xuất chương trình: Hình 5.3 Panel 5.2.3 Dialog Lớp ‘Dialog’ tương tự lớp Frame, nghĩa Dialog lớp lớp Window Đối tượng dialog tạo sau: Core Java Frame myframe=new Frame(“My frame”); // calling frame String title = “Title”; boolean modal = true; // whether modal or not Dialog dlg=new Dialog(myframe, title, modal); Số hạng ‘modal’ dialog ngăn chặn tương tác xảy đến với cửa sổ mở khác, dialog hiển thị hình Kiểu hộp thoại ngăn chặn người dùng tương tác với cửa sổ khác hình, dialog đóng lại 5.3 Thành phần (Component) Một component đặt giao diện người dùng, thay đổi kích thước hay làm cho nhìn thấy Ví dụ dùng phổ biến textfield, label, checkbox, textarea v.v… Các thành phần cao cấp khác scrollbar, scrollpane dialog tồn Tuy nhiên chúng không sử dụng thường xuyên TextField TextComponent TextArea Button C o m p o n e n t Label Checkbox List Choice Container Panel Applet Window Frame Canvas Dialog Scrollbar Hình 5.4 Các lớp đối tượng thành phần Bây xét số thành phần thường sử dụng 5.3.1 Nhãn (Label) Lớp sử dụng để trình bày String Nó sửa đổi Đây chuỗi đọc Sử dụng constructor sau để tạo label:  Label() Tạo Label trống Chương 5: AWT  Label(String labeltext) Tạo Label với văn cho  Label(String labeltext, int alignment) Tạo Label với chế độ canh lề alignment cho, alignment Label.LEFT, Label.RIGHT hay Label.CENTER Các phương thức sử dụng phổ biến label trình bày bảng bên dưới: Phương thức Chức setFont(Font f) Thay đổi phông chữ chọn Label setText(String s) Thiết lập nhãn cho Label getText() Lấy nội dung hành Label Bảng 5.1 Các phương thức Label Chương trình 5.3 cách sử dụng Label: Chương trình 5.3 import java.awt.*; class Labeltest extends Frame { Label label1=new Label(“This is just a label”); public Labeltest(String title) { super(title); add(label1); } public static void main(String args[]) { Labeltest f=new Labeltest(“Label”); f.setSize(300,200); f.show(); } } label1=new Label(“Enter your details :”); Tạo đối tượng Label add(label1); Label hiển thị thêm vào container Ở đây, Frame container mà thành phần Label thêm vào Việc thực cách sử dụng phương thức add() Kết xuất chương trình hình 5.5 Core Java Hình 5.5 Label 5.3.2 Ô văn (TextField) Một textfield vùng chứa dịng đơn, văn trình bày hay nhập vào người dùng Trong Java, constructor sau sử dụng để tạo textfield:     TextField(): Tạo textfield TextField(int columns): Tạo textfield với số cột cho TextField(String s): Tạo textfield với chuỗi văn cho TextField(String s, int columns): Tạo textfield với nhãn số cột cho Các phương thức thường sử dụng đối tượng TextField tóm tắt bảng sau: Phương thức setEchoChar(char) setText(String s) getText() setEditable(boolean) isEditable() Chức Thiết lập kí tự trình bày dạng kí tự cho Thiết lập nhãn cho TextField Trả nhãn TextField Xác định trường soạn thảo hay khơng Trường soạn thảo giá trị đặt True Xác định xem trường có mode soạn thảo hay không Giá trị trả kiểu Boolean Bảng 5.2 Các phương thức TextField Chương trình 5.4 cách sử dụng TextField: Chương 5: AWT Chương trình 5.4 import java.awt.*; class TextFieldtest extends Frame { TextField tf1=new TextField(30); public TextFieldtest(String title) { super(title); setLayout(new FlowLayout()); add(tf1); } public static void main(String args[]) { TextFieldtest f=new TextFieldtest(“TextField”); f.setSize(300,200); f.show(); } } Trong chương trình này, sử dụng phương thức setLayout() để thay đổi cách trình bày thành phần hình Layout manager có chức xắp xếp thành phần container Kết xuất chương trình hình bên dưới: Hình 5.6 TextField 5.3.3 Vùng văn (TextArea) Một Textarea sử dụng văn nhập vào hai hay nhiều dịng Textarea có scrollbar Thành phần TextArea trường văn soạn thảo với đặc tính nhiều dịng Để tạo Textarea, làm theo bước sau: Core Java 1) Tạo phần tử 2) Chỉ số dịng hay số cột phần tử cần có 3) Bố trí phần tử hình Trong Java, bạn sử dụng constructor sau để tạo TextArea:  TextArea(): Tạo TextArea  TextArea(int rows, int cols): Tạo TextArea với số lượng cột dòng cho  TextArea(String text): Tạo TextArea với nhãn cho  TextArea(String text, int rows, int cols): Tạo TextArea với nhãn, số dòng số cột cho Các phương thức thường sử dụng nhiều TextArea: Phương thức setText(String) getText() setEdiable(boolean) Chức Thiết lập nhãn cho TextArea Trả nhãn TextArea Xác định xem trường soạn thảo hay khơng Trường soạn thảo giá trị True isEdiable() Xác định xem trường có mode soạn thảo khơng Trả giá trị kiểu Boolean insertText(String, int) Chèn String cho vào vị trí index cho replaceText(String, int, Thay văn nằm vị trí int, int int) cho Bảng 5.3 Các phương thức TextArea Chương trình 5.5 cách sử dụng TextArea: Chương trình 5.5 import java.awt.*; class TextAreatest extends Frame { Label lbl=new Label(“Details”); TextArea ta1=new TextArea(); public TextAreatest(String title) { super(title); setLayout(new FlowLayout()); add(lbl); add(ta1); } public static void main(String args[]) Chương 5: AWT { TextAreatest t=new TextAreatest(“TextArea”); t.setSize(300,200); t.show(); } } Kết xuất chương trình hình bên dưới: Hình 5.7 TextArea 5.3.4 Button Nút nhấn hay gọi nút lệnh phần nguyên GUI Sử dụng button cách dễ để chặn tác động người dùng Để tạo button, bạn làm theo bước sau: 1) Tạo phần tử button với nhãn mục đích button 2) Bố trí phần tử hình 3) Hiển thị phần tử hình Sử dụng hai constructor sau để tạo button Java:  Button()  Button(String text) Sử dụng setLabel() getLabel() để thiết lập nhận nhãn button Ví dụ đơn giản sau tạo button trình bày chương trình 5.6: Chương trình 5.6 import java.awt.*; class Buttontest extends Frame { Button b1 = new Button(“red”); Button b2 = new Button(“Green”); Button b3 = new Button(“Blue”); public Buttontest(String title) { 10 Core Java super(title); setLayout(new GridLayout(3,3)); btn=new Button[str.length]; for (int I=0; I

Ngày đăng: 22/08/2012, 10:13

Từ khóa liên quan

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

Tài liệu liên quan