Hallo,
ich hab mal wieder ein Problem:
Ich würde gern von einer Unterunterklasse auf die Hauptklasse zugreifen; in meinem Fall wollte ich einfach einem Label einen anderen Text geben.
Ich bekomme bei dieser Aktion nur immer einen NullPointer - die gute Nachricht ist, dass ich weiß warum er verursacht wird (Es gibt Probleme bei der Wertübergabe. Habe ich bei der Unterklasse über den Konstruktor geregelt. Das geht nur irgendwie nicht bei der Unterunterklasse... kann es nicht richtig erklären.
); die Schlechte, dass ich nicht weiß wie ich ihn beheben kann.
Ich würde es gerne vermeiden von der Hauptklasse auf die Unterunterklasse direkt zuzugreifen. Des weitern wollte ich nicht erst auf die Unterklasse und von dieser dann auf die Hauptklasse zugreifen.
Ich hoffe, mein Problem kam verständlich rüber: hier mal ein Minimalbeispiel:
ich hab mal wieder ein Problem:
Ich würde gern von einer Unterunterklasse auf die Hauptklasse zugreifen; in meinem Fall wollte ich einfach einem Label einen anderen Text geben.
Ich bekomme bei dieser Aktion nur immer einen NullPointer - die gute Nachricht ist, dass ich weiß warum er verursacht wird (Es gibt Probleme bei der Wertübergabe. Habe ich bei der Unterklasse über den Konstruktor geregelt. Das geht nur irgendwie nicht bei der Unterunterklasse... kann es nicht richtig erklären.
Ich würde es gerne vermeiden von der Hauptklasse auf die Unterunterklasse direkt zuzugreifen. Des weitern wollte ich nicht erst auf die Unterklasse und von dieser dann auf die Hauptklasse zugreifen.
Ich hoffe, mein Problem kam verständlich rüber: hier mal ein Minimalbeispiel:
Code:
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Hauptklasse extends JFrame {
public JLabel label = null;
private JButton button = null;
private Unterklasse unterklasse = null;
public static void main(final String[] args) {
new Hauptklasse();
}
public Hauptklasse() {
super("LabelÄndern");
this.setPreferredSize(new Dimension(300, 80));
this.setLocation(100, 100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new FlowLayout());
unterklasse = new Unterklasse(this);
label = new JLabel();
label.setText("Hallo Welt");
getContentPane().add(label);
button = new JButton("Ändere Label");
button.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
unterklasse.actionButton();
}
});
getContentPane().add(button);
this.pack();
this.setVisible(true);
}
}
Code:
public class Unterklasse {
private Hauptklasse hauptklasse = null;
private Unterunterklasse unterunterklasse = null;
public Unterklasse(Hauptklasse hauptklasse) {
unterunterklasse = new Unterunterklasse();
this.hauptklasse = hauptklasse;
}
public void actionButton() {
unterunterklasse.changeLabel();
}
}
Code:
public class Unterunterklasse {
private Hauptklasse hauptklasse;
public void changeLabel() {
hauptklasse.label.setText("Hallo geänderte Welt");
}
}