Zu welchem Zeitpunkt sind Methoden anwendbar

BlubBlub

Bekanntes Mitglied
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?


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

	}

}
 

Ebenius

Top Contributor
Zu dem Zeipunkt zu dem der Konstruktor MyPanel aus dem Konstruktor der MyJFrame-Klasse aufgerufen wird, ist die Variable MyJFrame.myPanel noch null. Das kann auch nicht anders sein, denn die Variable wird ja erst durch die vom MyPanel-Konstruktor erzeugte Instanz belegt. Hier handelt es sich also um ein Henne-Ei-Problem.

Ebenius
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JavaFX Von welcher Klasse und zu welchem Zeitpunkt werden Event-Objekte erstellt? AWT, Swing, JavaFX & SWT 3
M Fenster aufteilen, aber mit welchem LayoutManager? AWT, Swing, JavaFX & SWT 10
F Herausfinden, auf welchem Objekt der Fokus liegt AWT, Swing, JavaFX & SWT 2
W JLabel-Text ab best. Zeitpunkt nicht mehr verändern AWT, Swing, JavaFX & SWT 2
F Swing GUI wird nicht zum richtigen Zeitpunkt neu gezeichnet AWT, Swing, JavaFX & SWT 26
N Dropshadow setzen bei einer Gruppe von Tiles, die sich jeweils in einer Stackpane befinden, welche in einer Gridpane angeordnet sind. AWT, Swing, JavaFX & SWT 0
AmsananKING Textfelder sind gleich null AWT, Swing, JavaFX & SWT 2
K Swing Buttons erst blinken lassen und dann abfragen, ob sie gedrückt worden sind AWT, Swing, JavaFX & SWT 2
Lunar Swing JFrame erstellt; weitere Elemente werden nicht eingefügt/sind nicht zu sehen AWT, Swing, JavaFX & SWT 4
J Injection - Aber Controller sind null AWT, Swing, JavaFX & SWT 3
N SceneBuilder wie auf Attribute zugreifen? Diese sind immer null. AWT, Swing, JavaFX & SWT 6
J Event Handling Button "enablen" wenn Eingaben in Textfeldern korrekt sind AWT, Swing, JavaFX & SWT 1
R Swing Welche LayoutManager sind die richtigen für mich? AWT, Swing, JavaFX & SWT 11
B Swing JButton deaktivieren, wenn nicht alle JTextFields ausgefüllt sind. AWT, Swing, JavaFX & SWT 2
Z Swing Swing: Elemente werden doppel/verschoben gezeichnet, sind teils unsichtbar etc... AWT, Swing, JavaFX & SWT 10
G Swing, JavaFx - Felder aus FXML sind null AWT, Swing, JavaFX & SWT 6
S Applet Sind Applets bald tot? Was sagt Oracle? AWT, Swing, JavaFX & SWT 6
C Swing Inhalt einer JTable aktualisieren und filten nach Feldern die nicht in der Tabelle sind AWT, Swing, JavaFX & SWT 3
J Swing JList: Neue Zeilen mit fireIntervalAdded sind automatisch selektiert AWT, Swing, JavaFX & SWT 2
X Swing Wie merken Buttons, dass sie aus dem Bild sind ? AWT, Swing, JavaFX & SWT 4
aze JTextfield nur so breit dass alle zeichen sichtbar sind AWT, Swing, JavaFX & SWT 2
martinyyyy AWT Parameter erzeugen NullpointerException obwohl sie vorhanden sind? AWT, Swing, JavaFX & SWT 4
S Prüfung ob JCeckBoxen angehakt sind schlägt fehl ? AWT, Swing, JavaFX & SWT 17
M JFace TableViewer + ContentProvider, wo sind die Spalten? AWT, Swing, JavaFX & SWT 6
V JMenu und die Tabs von JTabbedFrame sind auf einmal schwarz AWT, Swing, JavaFX & SWT 3
raptorrs J2D graphics, sind 500px immer 500 px AWT, Swing, JavaFX & SWT 2
A Wo sind die Grafiken für JTree ? AWT, Swing, JavaFX & SWT 3
1 Warum sind JButtons viel breiter als der enthaltene Text ? AWT, Swing, JavaFX & SWT 4
N Insets - Feldvariablen sind 0 AWT, Swing, JavaFX & SWT 8
B 3 Zeilen die unterschiedlich gross sind -->Welches Layout AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben