30/09/2018, 21:25

Java Swing- CLOSING WINDOWS

Chào mọi người, em đây viết một app đơn giản. Em mong muốn khi đóng windows sẽ mở ra Options chọn “Yes”“No”. Nếu “Yes” thì chương trình dừng hẳn. (OK không có gì sai).

Vấn đề gặp phải: Khi chọn “No”, chỉ có JFrame biến mất nhưng chương trình vẫn chạy. Mong mọi người giúp em với. Đây là đoạn code xử lý:

public void setCloseAction()
{

        clientFrame.addWindowListener(new java.awt.event.WindowAdapter() {
            @Override
            public void windowClosing(java.awt.event.WindowEvent windowEvent) {
                 
                int dialogButton = JOptionPane.YES_NO_OPTION;
                   int dialogResult = JOptionPane.showConfirmDialog (clientFrame, "Are you sure to close this window?","Warning",dialogButton);
                   if(dialogResult == JOptionPane.YES_OPTION)
                   {
                       transmitter = new MessageTransmitter("[closing]" + username, host ,portNumber);
                       transmitter.send();
                       System.exit(0);
                   }
            }
        });
  }
Pham Van Quan viết 23:30 ngày 30/09/2018

bạn set cho JFrame khi khởi tạo là là EXIT_ON_CLOSE

Mai Thế Nguyễn viết 23:39 ngày 30/09/2018

Dùng phương thức dispose() xem sao

LazyCat viết 23:41 ngày 30/09/2018

Theo mình hiểu là ý bạn muốn bấm “Yes” thì chương trình dừng hẳn, bấm “No” thì nó quay lại Frame chính chứ không tắt cái gì đúng không?

Bạn làm như thế này

Sét đặt việc bấm nút close sẽ không gây ảnh hưởng gì cả setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

Đặt System.exit(0); vào khối lệnh if (result == JOptionPane.YES_OPTION) {} để kết thúc chương trình khi người dùng bấm “Yes”

Khiem Huynh viết 23:38 ngày 30/09/2018

Cảm ơn mọi người góp ý. Mình làm theo bạn LazyCat thì thành công, cảm ơn bạn nhiều.

Bài liên quan
0