1
여러 가지 다른 방법으로 창을 닫으려고했으나 Action Listener 메서드에 추가 매개 변수를 보낼 수 없어 프레임에 대한 포인터 예외로 인해 프레임을 처리 할 수 없습니다.JButton을 사용하여 JDialog 창을 닫는 방법은 무엇입니까?
이것은 현재 코드입니다.
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);
}
}
근무 완벽하게 감사를! 그런데 왜이게 효과가 있고 내가 시도한 것이 아닙니다. – user1028872
원인 ** 프레임 ** wasnt가 초기화되었습니다 (즉, 널 포인터 예외가 발생하는 이유). 실제로 코드를 게시 한 것과 똑같이 유지하고 8 행을'public static JFrame frame = new JFrame();으로 변경하면됩니다. –