Sử dụng hộp thoại JDialog để lấy dữ liệu về main Frame

Bài viết này hướng dẫn bạn cách sử dụng hộp thoại JDialog để lấy dữ liệu và trả dữ liệu đó về main Frame.

Trước tiên, các bạn tạo một JFrame Form, giao diện như sau:

Lấy dữ liệu từ hộp thoại dialog

Rồi tạo tiếp một JDialog có giao diện như sau:

Lấy dữ liệu từ hộp thoại dialog

Bên JFrame Form, bạn xử lý sự kiện cho nút Show Dialog như sau.

private void btnShowDialogActionPerformed(java.awt.event.ActionEvent evt) {
    DialogForm dialogform = new DialogForm(this, true);
    dialogform.setVisible(true);
    String str = dialogform.getTextFieldContent();
    txtRes.setText(str);
}

Dòng 2, 3 khởi tạo và làm xuất hiện hộp thoại. Khi hộp thoại xuất hiện, chương trình được chặn ngay dòng 4. Bạn làm việc bên dialog xong, sau khi dispose() (đoạn code dưới), hộp thoại biến mất và chương trình thực hiện dòng lệnh 4, 5.

Bên JDialog bạn xử lý sự kiện cho nút OK như sau. Và thêm một phương thức getTextFieldContent() trả về kiểu String và nhớ có bổ từ public.

private void btnOkActionPerformed(java.awt.event.ActionEvent evt) {
    dispose();
}

public String getTextFieldContent() {
    return txtInput.getText();
}

Dòng 2, như đã nói, sẽ hủy mọi thành phần giao diện của hộp thoại. Phương thức thứ hai rất quan trọng. Nó thực hiện các xử lý cần thiết và trả (return) về một kiểu dữ liệu nào đó. Frame chính sẽ nhận dữ liệu bằng cách như dòng 4 của đoạn code thứ nhất.

Lấy dữ liệu từ hộp thoại dialog

One thought on “Sử dụng hộp thoại JDialog để lấy dữ liệu về main Frame

  1. DialogForm dialogform = new DialogForm(this, true);
    Bạn cho mình hỏi THAM ĐỐI TRUE truyền vào gì không.
    Tại DialogForm bạn phải khởi tạo như t
    hế nào để truyền vào nó như thế chứ.
    Bài viết rất hay nhưng còn thiếu nên k thực hiện dc

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s