Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 40 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
40
Dung lượng
336,69 KB
Nội dung
LẬP TRÌNH JAVA Chương LẬP TRÌNH GUI GV: Võ Hoàng Phương Dung Nội dung Giới thiệu GUI (Graphical user interface) Vật chứa (Container) Thành phần (Component) Quản lý cách trình bày (Layout manager) Xử lý kiện 2/25 Giới thiệu GUI GUI cung cấp chức nhập liệu theo cách thân thiện với người dùng Các thư viện: AWT, SWING, SWT… AWT viết tắt 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 3/25 Giới thiệu GUI AWT cung cấp thành phần khác để tạo GUI: • • • • • • 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) tính vẽ (draw) Phơng chữ (Font) Sự kiện (Event) 4/25 Giới thiệu GUI Gói AWT chứa lớp, giao diện gói khác Sau mô tả phần nhỏ hệ thống phân cấp lớp AWT 5/25 Vật chứa (Container) Container vùng mà bạn đặt thành phần giao diện bạn vào Gói java.awt chứa lớp gọi Container Frame Panel vật chứa thường sử dụng • Frame cửa sổ độc lập • Panel vùng nằm cửa sổ khác 6/25 Vật chứa (Container) Frame: constructor để tạo frame • Frame(): Tạo frame khơng hiển thị (invisible) • Frame(String title): Tạo frame khơng hiển thị, có tiêu đề 7/25 Vật chứa (Container) Ví dụ import java.awt.*; public class MyFrame extends Frame { public MyFrame(String title){ super(title); } public static void main(String[] args){ MyFrame myframe=new MyFrame("Hello"); myframe.setSize(300, 200); myframe.setVisible(true); } } 8/25 Vật chứa (Container) Panel sử dụng để nhóm số thành phần lại với • Hàm khởi tạo: Panel() Dialog: đối tượng cửa sổ cửa sổ chương trình Có dạng • Modal • Non-modal 9/25 Vật chứa (Container) Ví dụ public class MyPanel extends Panel { public static void main(String[] args){ MyPanel p=new MyPanel(); Frame f=new Frame("Test Panel"); f.add(p); f.setSize(200,500); f.setVisible(true); } } 10/25 Xử lý kiện Ví dụ: Xử lý kiện nút nhấn 26/25 Xử lý kiện Cài đặt giao diện listener thích hợp VD: class MyListener implements ActionListener Thi hành phương thức listener class MyListener implements ActionListener{ public void actionPerformed(ActionEvent e) { //code } } 27/25 Xử lý kiện Xác định tất thành phần tạo kiện Đăng ký nghe kiện (event listener) đến thành phần obj.addXX(h) obj: thành phần tạo kiện h: nghe kiện loại XX VD: button1.addActionListener(new myListener()) 28/25 Xử lý kiện Code class MyListener implements ActionListener{ public void actionPerformed(ActionEvent e) { System.out.print(“Clicked !!!”); } } 29/25 Xử lý kiện public class ButtonEvent extends Frame { private Button btn=new Button("Click Here"); public ButtonEvent(){ super(); this.add(btn); btn.addActionListener(new myListener()); } public static void main(String[] arg){ ButtonEvent myclass=new ButtonEvent(); myclass.setSize(100,200); myclass.pack(); myclass.setVisible(true); } } 30/25 Xử lý kiện Code public class ButtonEvent2 extends Frame implements ActionListener{ private Button btn=new Button("Click Here"); public void actionPerformed(ActionEvent e) { System.out.print("DDD"); } public ButtonEvent2(){ super(); this.add(btn); btn.addActionListener(this); } 31/25 Xử lý kiện public static void main(String[] arg){ ButtonEvent myclass=new ButtonEvent(); myclass.setSize(100,200); myclass.pack(); myclass.setVisible(true); } } 32/25 Xử lý kiện Bảng sau kiện khác mô tả chúng 33/25 Xử lý kiện Các interface listener ComponentListener 34/25 Xử lý kiện Danh sách listener cho thành phần 35/25 Xử lý kiện Lấy thơng tin event: • Object getSource(): trả lại đối tượng gây event • Ví dụ public void actionPerformed(ActionEvent e) { if(e.getSource()==btn) System.out.print("DDD"); } 36/25 Xử lý kiện Các lớp thích nghi (Event Adapters) • Nhiều listener interface có nhiều phương thức • Ví dụ: MouseListener có phương thức mousePressed mouseReleased mouseEntered mouseExited mouseClicked • Sử dụng chi phương thức interface, ta phải thực thi tất phương thức => không cần thiết 37/25 Xử lý kiện Các lớp thích nghi (Event Adapters) • Sử dụng Adapter, ta cần định nghĩa phương thức cần sử dụng • Ví dụ public class MyClass extends MouseAdapter { someObject.addMouseListener(this); public void mouseClicked(MouseEvent e) { //code } } 38/25 Xử lý kiện Các lớp lồng (Inner Classes) public class MyClass extends Frame{ public MyClass(){ this.addWindowListener(new MyAdapter()); } class MyAdapter extends WindowAdapter{ public void windowClosing (WindowEvent event) { System.exit(0); } } 39/25 Xử lý kiện Các lớp lồng vô danh (Anonymous Inner Classes) public class MyClass extends Frame{ public MyClass(){ this.addWindowListener(new WindowAdapter(){ public void windowClosing (WindowEvent event){ System.exit(0); }}); } } 40/25 ...Nội dung Giới thiệu GUI (Graphical user interface) Vật chứa (Container) Thành phần (Component) Quản lý cách trình bày (Layout manager) Xử lý kiện 2/25 Giới thiệu GUI GUI cung cấp... 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 3/25 Giới thiệu GUI AWT cung cấp thành phần khác để tạo GUI: • • • • • • Vật chứa (Container... colors.addItem("Green"); 17/25 Quản lý cách trình bày Các kiểu trình bày (Layout manager) • • • • • Null layout Flow layout Border layout Grid layout GridBag Layout Layout manager thiết lập phương thức ‘setLayout()’