Lập trình giao diện đồ họa
Chương 2(tt)
GV : Nguyễn Phúc Hảo
1
Mục tiêu bài học
N m đ ắ
ệ ạ ộ c các khái ni m h p tho i, menu,
ượ canvas, panel.
Bi
ế ầ t cách khai thác các thành ph n trên
ươ
ế ươ trong ch N m v ng cách vi ữ ng trình Java ộ t m t ch ồ ng trình đ
GV : Nguyễn Phúc Hảo
ắ h aọ
2
Hộp thoại ?
GV : Nguyễn Phúc Hảo
3
Hộp thoại ?
GV : Nguyễn Phúc Hảo
4
Hộp thoại ?
GV : Nguyễn Phúc Hảo
5
Hộp thoại ?
GV : Nguyễn Phúc Hảo
6
Hộp thoại trong awt
Dialog d = new Dialog(Frame f, String title)
Dialog d = new Dialog(Frame f, String title,int chedochuyen) Có các hàm như :
GV : Nguyễn Phúc Hảo
+ setVisible(boolean b) =>Hiện Dialog + dispose() =>Hủy Dialog
7
Hộp thoại tập tin trong gói awt
Tạo đối tượng tập tin
GV : Nguyễn Phúc Hảo
FileDialog frame = new FileDialog(Frame f, String title, int mode); FileDialog frame = new FileDialog(Frame f, String title); // mode : FileDialog.LOAD | FileDialog.SAVE dùng để đọc và ghi nội dung
8
Hộp thoại tập tin trong gói awt( tt)
Các thuộc tính cơ bản trong đối tượng tập tin + setFile(String dangtaptin) => Xác định dạng tập tin có thể hiển thị Ví dụ : dangtaptin = "*.java" + setDirectory(String thumuc) => Chỉ định thư mục + setLocation(int x,int y) => Vị trí hiển thị + setVisible(boolean b) => Hiện ẩn + getFile() => Trả về tên tập tin được chọn
GV : Nguyễn Phúc Hảo
9
Hộp thoại tập tin trong gói awt( tt)
public class UseFileDialog { public String loadFile (Frame f, String title, String defDir, String fileType) { FileDialog fd = new FileDialog(f, title, FileDialog.LOAD);
fd.setFile(fileType); fd.setDirectory(defDir); fd.setLocation(50, 50); fd.show(); return fd.getFile(); }
GV : Nguyễn Phúc Hảo
Ví dụ :
10
Hộp thoại tập tin trong gói awt( tt)
public String saveFile
(Frame f, String title, String defDir, String fileType) { FileDialog fd = new FileDialog(f, title,FileDialog.SAVE); fd.setFile(fileType); fd.setDirectory(defDir); fd.setLocation(50, 50); fd.show(); return fd.getFile(); }
GV : Nguyễn Phúc Hảo
11
Hộp thoại tập tin trong gói awt( tt)
public static void main(String s[]) {
UseFileDialog ufd = new UseFileDialog(); System.out.println ("Loading : " + ufd.loadFile(new Frame(), "Open...", ".\\", "*.java")); System.out.println ("Saving : " + ufd.saveFile(new Frame(), "Save...", ".\\", "*.java")); System.exit(0); } }
GV : Nguyễn Phúc Hảo
12
Hộp thoại thông báo trong gói swing
Cách dùng : JoptionPane.showMessageDialog(
GV : Nguyễn Phúc Hảo
Frame f,String thbao, String tde , JOptionPane.ERROR_MESSAGE); /*new JoptionPane(String thbao, JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_CANCEL_OPTION) */ f.setDefaultCloseOperation(JFrame.EXIT_ON _CLOSE); f.setVisible(true);
13
Hộp thoại thông báo trong gói swing(tt)
Các phương thức cơ bản trong lớp JoptionPane
GV : Nguyễn Phúc Hảo
void showMessageDialog(Component pCpn, Object message, String title, int messageType) String showInputDialog(Component pCpn, Object message, String title, int messageType) int showConfirmDialog(Component pCpn, Object message, String title, int optionType, int messageType)
14
Hộp thoại thông báo trong gói swing(tt)
Xác định độ rộng và cao của màn hình
GV : Nguyễn Phúc Hảo
Toolkit kit = Toolkit.getDefaultToolkit(); Dimension screenSize = kit.getScreenSize(); int screenWidth = screenSize.width; int screenHeight = screenSize.height;
15
Menu
Là dạng điều khiển thông thường, và xuất
Menu thường dùng để mô tả các tính năng chính của ứng dụng và các chức năng khác nếu cần
GV : Nguyễn Phúc Hảo
hiện hầu hết trong các chương trình ứng dụng dưới nhiều dạng hình thức khác nhau
16
Minh họa
GV : Nguyễn Phúc Hảo
17
GV : Nguyễn Phúc Hảo
18
Xây dựng menu theo mô hình than
Chúng ta cần tạo một đối tượng(biến)
Sau đó tiến hành thêm các thành phần đối tượng Menu vào đối tượng MenuBar ở trên Nếu trong Menu bạn muốn có các mục chọn lựa thì bạn có thể chèn vào đó MenuItem
Còn nếu muốn có Menu con thì cứ việc chèn
MenuBar và đưa vào trình chứa có hổ trợ MenuBar
GV : Nguyễn Phúc Hảo
Menu khác vào
19
Ví dụ :
f.setMenuBar(menuBar); Menu file=new Menu("File"); menuBar.add(file); Menu edit=new Menu("Edit"); menuBar.add(edit); Menu help=new Menu("Help"); menuBar.setHelpMenu(help);
GV : Nguyễn Phúc Hảo
Frame f = .... MenuBar menuBar=new MenuBar();
20
Ví dụ :
MenuItem newItem= new MenuItem("New");
GV : Nguyễn Phúc Hảo
21
file.add(newItem); MenuItem oItem = new MenuItem("Open"); file.add(openItem); MenuItem sItem = new MenuItem("Save"); file.add(saveItem); saveItem.setEnable(false); //phan code duoi them vao day file.addSeparator(); //phuong thuc nay dua mot hang phan cach vao menu File MenuItem eItem=new MenuItem("Exit"); file.add(exitItem);
Ví dụ :
//Tạo menu con :
Menu print=new Menu("Setup Print"); file.add(print); MenuItem previewItem=new MenuItem("Preview"); print.add(previewItem); MenuItem printItem=new MenuItem("Print"); print.add(printItem); // Checkbox menu CheckboxMenuItem autosave=new CheckboxMenuItem("Auto Save"); file.add(autosave);
GV : Nguyễn Phúc Hảo
22
Canvas
Thường dùng làm khung vẽ Để vẽ theo ý thích, người dùng thường viết lại
Khởi tạo :
các lệnh trong hàm paint
GV : Nguyễn Phúc Hảo
Canvas c = new Canvas(){ public void pain(Graphics g){ g.fillRect(30,30,100,100); } }
23
Canvas( tt)
Các phương thức cơ bản :
Dùng :
repaint() => Gọi lại hàm paint setVisible(boolean b) =>Hiện | ẩn setSize(int width,int height) => Kích thước
GV : Nguyễn Phúc Hảo
Đơn giản bỏ vào Frame bằng cách dùng CardLayout
24
GV : Nguyễn Phúc Hảo