Как закрыть окно JDialog, используя JButton? - PullRequest
1 голос
/ 04 ноября 2011

Я пробовал несколько разных способов закрыть окно, но так как вы не можете отправить дополнительные параметры методу Action Listener, я не могу удалить кадр из-за исключения указателя для кадра.

Это мой текущий код.

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class errorRequiredFieldMissing extends JDialog{
JLabel error;
JButton exit;
public static JFrame frame;
public errorRequiredFieldMissing() {
    super(frame, "Error", true);
    setLayout(new FlowLayout());
    error = new JLabel ("Required field or fields missing, please fill in all fields to continue.");
    add(error);
    exit = new JButton ("OK");
    add(exit);
    System.out.println("chk1");
    exit.addActionListener(new ActionListener(){

        public void actionPerformed(ActionEvent event){
            System.out.println("chk2");
            frame.dispose();
        }
    }); 
}
public static void method2(){
    System.out.print("success!");
    errorRequiredFieldMissing gui = new errorRequiredFieldMissing();
    gui.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
    gui.setSize(400,100);
    gui.setLocation(300,25);
    gui.setVisible(true);
}
}

1 Ответ

2 голосов
/ 04 ноября 2011

попробуйте так:

exit.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
        exitActionPerformed(evt);
    }
});

, а затем

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