Von Instanz des Dialogs auf das Frame zugreifen

Exorcist

Mitglied
Kann mir wer helfen?

Ich habe einen Dialog erstellt. Im Hauptfenster des JFrame erzeuge ich eine Instanz dieses Dialogs und übergebe das Frame Hauptfenster per this an den Konstruktor des Dialogs.

Wie kann ich denn nun von der Instanz des Dialogs auf die Instanz des Hauptfensters zugreifen, damit ich von dort ein update der tabelle vornehmen kann?

Für Hilfe wäre ich wirklich unendlich dankbar!
 
Indem du im konstruktor die Referenz auf den Frame in eine eigene Variable schreibst und dir damit merkst.

Java:
class MeineKlasse

private JFrame mainFrame;

public MeineKlasse(JFrame mainFrame)
{
    this.mainFrame=mainFrame;
}

public eineMethode()
{
    This.mainFrame.methodeAusMainFrame();
}

Gruß

Claus
 
Kann ich auf diese Weise nicht nur auf static Methoden zugreifen? Ich will aber auf eine Instanz des Hauptfensters, von der ich den Dialog geöffnet habe, zugreifen.

Das hier habe ich im DialogFenster eingegeben :

[Java]

HauptFensterUI hfdialog;

public NeuerKundeLieferantDialog(HauptFensterUI hf) {
this.hfdialog = hf;
}

[/Java]

Im HauptFenster habe ich folgendes eingegeben :

public HauptFensterUI hf1;

Also ich kann jetzt vom Dialogfenster auf die hf1 Variable zugreifen, aber diese Auswahl kommt unendlich, in Form von :

this.hf1.hf1.hf1.. usw..

Kein Zugriff auf die Instanz des Hauptfensters und somit der Table. Der Getter für die Table wurde im Haupftenster gesetzt, daran kanns nicht liegen.
 
Ich scheine Zugriff zu erhalten, aber jetzt bekomme ich folgenden Fehler, wenn ich die Tabelle aktualisieren will :

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException


Der Code im DialogFenster sieht so aus :

[Java]
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

this.hfdialog.getKundeLieferantenTableModel().fireTableDataChanged();
[/Java]
 
Du hast Dir meinen Beitrag nicht vollständig durchgelesen.

In 2 Tagen will sich ein eventuell zukünftiger Arbeitgeber das ansehen, was ich auf die Beine gestellt habe. Dabei entscheidet sich, ob ich die Möglichkeit erhalte, meine Laufbahn weiterhin in Java einzuschlagen mit der Möglichkeit der tieferen Ausbildung.

Verzeih mir also, wenn ich deinen Artikel ignoriere, bis ich das Projekt vorgestellt habe und weiterhin versuche, die Tabelle aktualisieren zu lassen.

Danke dennoch für die Hilfe 🙂
 
Wenn es sich um eine Ausbildung handelt, erwartet niemand sowas.

Wenn es doch jemand erwartet, dann wirst du in zwei Tagen sowieso keinen sicheren Umgang mit Java vorweisen können.

Daher würde ich mich auf die Basics konzentrieren.

--

Meiner Meinung nach hilft es auch nicht weiter, wenn man hier einfach die Lösung postet. Das kann man auch garnicht, weil du meine Beitrag dazu ignorieren willst 😉

Wie dem auch sei: strukturiertes arbeiten ist das a und o.

Was bedeutet eine NPE überhaupt?
 
Wenn es sich um eine Ausbildung handelt, erwartet niemand sowas.

Wenn es doch jemand erwartet, dann wirst du in zwei Tagen sowieso keinen sicheren Umgang mit Java vorweisen können.

Daher würde ich mich auf die Basics konzentrieren.

--

Meiner Meinung nach hilft es auch nicht weiter, wenn man hier einfach die Lösung postet. Das kann man auch garnicht, weil du meine Beitrag dazu ignorieren willst 😉

Wie dem auch sei: strukturiertes arbeiten ist das a und o.

Was bedeutet eine NPE überhaupt?

Hey JavaMeister,

Fertige Lösungen bringen in der Tat nichts, da hast du recht. Ich bin jedoch schon zumindest soweit, dass ich eine Applikation mit Datenbankanbindung und der Manipulation von Entitys vorweisen kann (Löschen, Neue Objekte in DB speichern usw.).

Je mehr man zeigen kann, umso besser natürlich. Ich glaube auch verstanden zu haben wie man von einem DialogFenster auf die MainFrame zugreifen kann, doch leider muss ich Prioritäten setzen und möchte noch eine Filterfunktion für die DB programmieren, die mir wichtiger scheint. Den Kunden kann man anstatt eines Dialogfensters nun im MainFrame erstellen, das Dialogfenster muss warten, lieber noch die Filterfunktion ausprogrammieren.

Was verstehst du unter NPE?

Gruss,
 

Zurück
Oben