Nội dung cần nắm trong Bài giảng Lập trình hướng đối tượng: Lập trình giao diện với Java gồm: tạo giao diện với các đối tượng cơ bản, xử lí sự kiện giao diện, các đối tượng multimedia, java swing, table và cách bố trí giao diện, bài tập.
Lập trình hướng đối tượng Lập trình giao diện với Java Giảng viên: TS Nguyễn Mạnh Hùng Học viện Công nghệ Bưu Viễn thơng (PTIT) Nội dung Tạo giao diện với đối tượng Xử lí kiện giao diện Các đối tượng multimedia Java swing Table cách bố trí giao diện Bài tập Giao diện Các loại khung chứa Frame: khung cửa sổ Panel: khung chứa vùng cửa sổ Dialog: cửa sổ cửa sổ Frame import java.awt.*; public class FrameDemo{ public static void main(String[] args) { // Khai báo khởi tạo frame có tiêu đề Frame myFrame = new Frame(“This is my Frame!”); myFrame.setSize(300,150); // Định kích cỡ frame myFrame.setVisible(true); // Hiển thị frame } } Panel import java.awt.*; public class PanelDemo{ public static void main(String[] args) { // Khai báo khởi tạo frame có tiêu đề Frame myFrame = new Frame(“Frame has a panel!”); myFrame.setSize(300,150); // Định kích cỡ frame Panel myPanel = new Panel();// Khai báo panel myFrame.add(myPanel); // Thêm panel vào frame myFrame.setVisible(true); // Hiển thị frame } } Dialog import java.awt.*; public class DialogDemo{ public static void main(String[] args) { // Khai báo khởi tạo frame có tiêu đề Frame myFrame = new Frame(“Frame has a dialog!”); myFrame.setSize(300,150); // Định kích cỡ frame // Khai báo khởi tạo dialog Dialog myDialog = new Dialog(myFrame, “An empty dialog!”, true); myFrame.add(myDialog); // Thêm dialog vào frame myFrame.setVisible(true); // Hiển thị frame } } Các loại component Label: dùng để hiển thị nhãn text, không edit chạy TextField textArea: dùng để nhập text vào hiển thị text Button: nút lệnh, dùng để thực thi nhiệm vụ Label import java.awt.*; public class LabelDemo{ public static void main(String[] args) { // Khai báo khởi tạo frame có tiêu đề Frame myFrame = new Frame(“Frame has some labels!”); myFrame.setSize(300,150); // Định kích cỡ frame // Khai báo khởi tạo label Label myLabel1 = new Label(); myLabel1.setText(“The first label!”);//Gán nội dung myLabel1.setAlignment(Label.CENTER);// Căn lề myFrame.add(myLabel1); // Gắn label vào frame myFrame.setVisible(true); // Hiển thị frame } } TextField import java.awt.*; public class TextFieldDemo{ public static void main(String[] args) { // Khai báo khởi tạo frame có tiêu đề Frame myFrame = new Frame(“Frame has a panel!”); myFrame.setSize(300,150); // Định kích cỡ frame // Khai báo khởi tạo textField TextField myTextField = new TextField(“A text field!”); myFrame.add(myTextField); // Gắn vào frame myFrame.setVisible(true); // Hiển thị frame } } 10 Các loại trình đơn Menubar: Thanh trình đơn Menu: Trình đơn đổ xuống PopupMenu: Trình đơn xuất click chuột phải MenuItem: Các mục chọn trình đơn 25 Ví dụ (1) import java.awt.*; import java.awt.event.*; public class MenuDemo extends Frame implements ActionListener, MouseListener{ Menubar myBar; Menu myMenu; PopupMenu myPopup; Label lbl; public MenuDemo(){ super(“Menu demo!”); myBar = new Menubar(); // Thanh tr.nh đơn this.setMenuBar(myBar); // Thiết lập menubar frame myMenu = new Menu(“File”); // menu File myBar.add(myMenu); // Gắn menu vào tr.nh đơn myMenu.addActionListener(this);// Bắt kiện myMenu.add(new MenuItem(“New”)); myMenu.add(new MenuItem(“Open”)); myMenu.addSeparator(); // Thêm dấu nhóm item myMenu.add(new MenuItem(“Save”)); myMenu.add(new MenuItem(“Save As”)); myMenu.addSeparator(); myMenu.add(new MenuItem(“Exit”)); 26 Ví dụ (2) myPopup = new PopupMenu(“Options”);// Menu popup myPopup.addActionListener(this);// Bắt kiện myPopup(new MenuItem(“Cut”)); myPopup(new MenuItem(“Copy”)); myPopup(new MenuItem(“Paste”)); lbl = new Label(); // Khởi tạo nh.n this.add(lbl); // Gắn vào frame } /* Phương thức xử lí kiện */ public void actionPerformed(ActionEvent ae){ if(ae.getActionCommand().equals(“Exit”)){ System.exit(0); } lbl.setText(ae.getActionCommand()); } public void mouseClicked(MouseEvent me){ myPopup.show(this, me.getX(), me.getY());// Hiện menu popup } 27 Các kĩ thuật tạo layout Các loại layout Cách trình bày theo dịng (Flow layout) Cách trình bày theo mảng (Grid layout) Cách trình bày theo Border (Border layout) Cách trình bày theo GridBag (GridBag layout) Cách trình bày tự (Null layout) 29 Flow layout import java.awt.*; public class FlowLayoutDemo{ public static void main(String[] args) { // Khai báo khởi tạo frame có tiêu đề Frame myFrame = new Frame(“Frame has somes buttons!”); myFrame.setSize(300,150); // Định kích cỡ frame myFrame.setLayout(new FlowLayout( ));// Cách trình bày // Khai báo khởi tạo button for(int i=0; i