Hi,
ich habe folgenden Code geschrieben und dabei verstehe ich eine Sache nicht.
Warum liefert mir der Befehl System.out.println(myJFrame.getMyPanel().getMyPanelVariable())
eine NullPointerException während System.out.println(myPanel.getMyPanelVariable()) und System.out.println(myJFrame.getMyVarialbe()) dies nicht tut?
ich habe folgenden Code geschrieben und dabei verstehe ich eine Sache nicht.
Warum liefert mir der Befehl System.out.println(myJFrame.getMyPanel().getMyPanelVariable())
eine NullPointerException während System.out.println(myPanel.getMyPanelVariable()) und System.out.println(myJFrame.getMyVarialbe()) dies nicht tut?
Java:
public class Starter
{
public static void main(String[] args)
{
new MyJFrame();
}
}
Java:
public class MyJFrame extends JFrame
{
private String myVariable;
private MyPanel myPanel;
public MyJFrame()
{
super();
myVariable = "myVariable";
myPanel = new MyPanel(this);
setSize(500, 700);
setVisible(true);
}
public String getMyVarialbe()
{
return this.myVariable;
}
public MyPanel getMyPanel()
{
return this.myPanel;
}
}
Java:
public class MyPanel extends JPanel
{
private String myPanelVariable;
public MyPanel(MyJFrame myJFrame)
{
super();
myPanelVariable = "myPanelVariable";
JButton button = new JButton("button");
button.addActionListener(new MyActionListener(myJFrame, this));
}
public String getMyPanelVariable()
{
return this.myPanelVariable;
}
}
Java:
public class MyActionListener implements ActionListener {
public MyActionListener(MyJFrame myJFrame, MyPanel myPanel)
{
System.out.println("myJFrame.getMyVarialbe(): " + myJFrame.getMyVarialbe());
System.out.println("myPanel.getMyPanelVariable(): " + myPanel.getMyPanelVariable());
System.out.println("myJFrame.getMyPanel().getMyPanelVariable(): " + myJFrame.getMyPanel().getMyPanelVariable());
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
}
}