Cỏc hộp thoại

Một phần của tài liệu Bài giảng ngôn ngữ lập trình Java doc (Trang 130 - 134)

VI.1 Hộp thoại thụng bỏo

Khi cần đưa ra thụng bỏo hay hỏi người dựng một vấn đề gỡ đú và nhận về cõu trả lời, ta dựng hộp thoại thụng bỏo. Java hỗ trợ lớp JOptionPane để ta thực hiện cụng việc này.

Lớp JOptionPane cú 4 phương thức tĩnh sau: Tờn phương thức Giỏ trị trả về í nghĩa

showMessageDialog Khụng cú Hiển thị một thụng bỏo và đợi ấn OK

showConfirmDialog Số int Hiển thị thụng bỏo và đợi xỏc nhận Ok hay Cancel

showOptionDialog Số int Hiển thị thụng bỏo và nhận về trả lời từ một danh sỏch chọn

icon hiển thị phụ thuộc vào loại thụng bỏo: ERROR_MESSAGE : Thụng bỏo lỗi INFORMATION_MESSAGE : Thụng tin WARNING_MESSAGE :Cảnh bỏo QUESTION_MESSAGE: Hỏi PLAIN_MESSAGE: Giải thớch

Cỏc hằng số này được truy cập qua JOptionPane. Vớ dụ:

int selection = JOptionPane.showConfirmDialog(parent, "Message", "Title", JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE);

if (selection == JOptionPane.OK_OPTION) . . .

VI.2 Hộp thoại chọn File

Khi viết ứng dụng ta gặp cỏc tỡnh huống mở file để đọc hoặc ghi. Swing hỗ trợ một lớp JFileChooser để ta thực hiện cụng việc này. Hai phương thức quan trọng là:

- showOpenDialog: Để hiện thị hộp thoại chọn mở file - showSaveDialog: Để hiện thị hộp thoại chọn ghi file Sau đõy là cỏc bước để làm việc với hộp thoại chọn file:

1- Tạo một đối tượng JFileChooser: JFileChooser chooser = new JFileChooser(); 2- Đặt thư mục cho hộp thoại: chooser.setCurrentDirectory(new File("."));

3- Nếu định chọn trước một file, cú thể đặt: chooser.setSelectedFile(new File(filename)); 4- Để cho phộp chọn nhiều file: chooser.setMultiSelectionEnabled(true);

5- Nếu muốn giới hạn kiểu file, dựng bộ lọc file. Để dựng được bộ lọc file ta phải thiết kế một lớp kế thừa từ lớp javax.swing.filechooser.FileFilter. Vớ dụ bộ lọc file Gif:

public class GifFilter extends FileFilter {

public boolean accept(File f) {

return f.getName().toLowerCase().endsWith(".gif") || f.isDirectory(); }

public String getDescription() {

return "GIF Image"; }

}

Sau đú gỏn cho hộp thoại: chooser.setFileFilter(new GifFilter());

6- Mặc định thỡ chỉ cho phộp chọn file, nếu muốn cho phộp chọn thư mục dựng phương thức: setFileSelectionMode() với cỏc tham số: JFileChooser.DIRECTORIES_ONLY hoặc JFileChooser.FILES_AND_DIRECTORIES.

7- Hiển thị hộp thoại bằng lệnh gọi:

int result = chooser.showOpenDialog(parent); hoặc

int result = chooser.showSaveDialog(parent);

Cỏc giỏ trị trả về là JFileChooser.APPROVE_OPTION, JFileChooser.CANCEL_OPTION, or JFileChooser.ERROR_OPTION

8- Lấy vố file hoặc cỏc file được chọn dựng: getSelectedFile() hoặc getSelectedFiles(). Neus chỉ muốn lấy tờn file thỡ ta dựng phương thức getPath().

String filename = chooser.getSelectedFile().getPath();

VI.3 Hộp thoại chọn màu

Swing hỗ trợ lớp JColorChooser để người dựng chọn màu. Cỳ phỏp sử dụng như sau: Color selectedColor = JColorChooser.showDialog(parent,title, initialColor);

Khi làm việc với hộp thoại chọn màu ta cần cung cõp: - parent: một companent cha;

- title: Tiờu đề hộp thoại;

- chế độ hộp thoại modal hay modeless; - một đối tượng chọn màu

- bộ lắng nghe cho nỳt bấm Ok và Cancel. chooser = new JColorChooser();

dialog = JColorChooser.createDialog(parent,"Background Color", false /* not modal */, chooser, new ActionListener() // Lắng nghe cho OK

{

public void actionPerformed(ActionEvent event) {

setBackground(chooser.getColor()); }

},

null /* Khụng cú lắng nghe cho Cancel */);

Bài tập

1. Hóy thiết kế một giao diện cú nội dung như sau:

2. Hóy lập trỡnh để xử lý sự kiện click chuột phải lờn nền của sổ sẽ hiện một menu Popup. 3. Viết chương trỡnh giải phương trỡnh bậc 2 với giao diện GUI. Yờu cầu chương trỡnh cú cỏc ụ nhập cỏc hệ số a, b, c và cho phộp xem kết quả. Trường hợp khụng cú nghiệm sẽ hiển thị một hộp thoại thụng bỏo “chương trỡnh vụ nghiệm”.

Đề tài 11. Threading

Java là ngụn ngữ thụng dụng duy nhất hỗ trợ cho lập trỡnh viờn cỏc giải phỏp lập trỡnh song song. Lập trỡnh viờn xỏc định số lượng cỏc thread được chạy trong chương trỡnh và chỳng được thực hiện song song với nhau ở những giai đoạn nào. Khả năng này của Java gọi là tớnh đa luồng.

Một phần của tài liệu Bài giảng ngôn ngữ lập trình Java doc (Trang 130 - 134)