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

25