JDialog에서 메서드 호출하는데 NullPointerException이 나는데 도와주세요
늘솔길
간단한 예를 들자면 이렇습니다.
클래스 이렇게 두개가 있습니다.
--------------------------------------------
클래스명 MainFrame : JFrame을 상속받았다.
클래스명 SubDialog: JDialog를 상속받았다.
----------------------------------------------돌아가는 순서
------------------------------------------------
1. MainFrame에 버튼이 하나 있고
2. 그 버튼을 누르면 SubDialog가 뜹니다.
3. SubDialog에도 버튼이 하나 있는데 그 것을 누르면
4. MainFrame의 show()메서드를 호출합니다.
--------------------------------------------하지만 show()메서드 호출 위치마다 다른 결과를 갖습니다
--------------------------------------------
MainFrame -정상적인 호출된다
SubDialog -NullPointerException 발생
--------------------------------------------이거 왜 이럴까요? 좀더 구체적인 소스코드를 보여드리겠습니다.
==============================================
==MainFrame클래스==========================
==============================================
class MainFrame extends JFrame implements ActionListener
{
public MainFrame()
{
.....
start();
.....
}
public void displayMessage()
{
System.out.prinln(정상적으로 show()메서드가 호출됨);
}
public void start()
{
button.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == button){
SubDialog sub = new SubDialog(this);
}
}
}==============================================
==SubDialog클래스===========================
==============================================
class SubDialog extends JDialog implements ActionListener
{
private MainFrame frm;
public SubDialog(MainFrame frm)
{
super(frm, 다이얼로그);
this.frm = frm;
start();
.......
}
public void start()
{
button2.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == button2)
{
frm.displayMessage();
}
}
}
==========================================
좀 긴것 같지만 뭐 별거 없는 코드를 예로 작성했습니다.
이거 왜 SubDialog에서는 show()메서드 호출이 안될까요?
무엇이 문제일까요? 꼭 좀 알려주세요.