Schnittstelle zwischen Haupt und Nebenfenster

Scrimau

Mitglied
Sicherlich kennen von euch viele diese Einstellungsdialoge, wo man eben Einstellungen vornehmen kann die Änderungen im Hauptfenster hervorrufen. Um so etwas ähnliches zu realisieren woll ich ne Schnittstelle zwischen Haupt und Nebenfenster (beides abgeleitet von JFrame) realisieren. Im Hauptfenster hab ich auch schon eine entsprechende Methode angefertigt (im Prinzip ist es ja der Empfänger, natürlich public eingestellt). Im Nebenfenster wollte ich nun diese aufrufen, aber ich muss das Hauptfenster ja mit einem entsprechenden Variablennamen ansprechen. Wie finde ich den raus? Von getOwner() und getParent() hat ich mir was erhofft aber die bringen nicht die oben erwähnte Methode mit (sind halt nur die Standardklassen).

Scrimau
 
Zuletzt bearbeitet:

Scrimau

Mitglied
Gibt eine Nullpointer Exception.
Obwohl es der Klasse als Atrribut zugeordnet ist, also das Optionsfenster.

Muss man vlt. den Parent manuell setzen? Wenn ja wo? (so eine Methode wie setParent hab ich nicht gefunden)
 
Zuletzt bearbeitet:

ireas

Mitglied
Ah, ok. Ich hab gerade SWT und Swing etwas vermischt ;)

Eine vielleicht nicht ganz so schöne, aber immerhin funktionierende Lösung wäre, wenn Du der Configklasse das Hauptfenster übergibst:

Java:
public class Config extends … {
    private MainWindow mainWin;
    
    public Config(MainWindow mainWin) {
        super(…);
        this.mainWin = mainWin;
    }

    public void configuration() {
        mainWin.updateConfig();
    }
}
 

ireas

Mitglied
gibts da nicht noch eine bessere Lösung? (ich bin da bissl perfektionistisch^^)

Das verstehe ich gut *g* Nach dem Wälzen der API habe ich aber nur eine bessere Lösung parat: Mach das Unterfenster zu einem JDialog. Der JDialog-Konstruktor erwartet nämlich einen anderen Frame als owner – und ich schätze mal, dieser läßt sich dann mit getOwner abrufen :)
 

Scrimau

Mitglied
Dachte mir das so:
Java:
public class Visualisierung extends javax.swing.JDialog {
...
    private void Closing(java.awt.event.WindowEvent evt) {
        ((GUI) this.getParent()).VisClose(); 
    }
}

public class GUI extends javax.swing.JFrame {
...    
     public void VisClose ()
    {
        Vis.setState(false);        
    }
}

Und ohne Casten geht es eben nicht, weil dann die Methode nicht mitgeliefert wird.
 

L-ectron-X

Gesperrter Benutzer
Warum so kompliziert?
Es genügt doch im Konstruktor deines JDialogs eine einzige Zeile, um deinen JDialog zu schließen:
Java:
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
 

ireas

Mitglied
Warum so kompliziert?
Es genügt doch im Konstruktor deines JDialogs eine einzige Zeile, um deinen JDialog zu schließen:
Java:
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

Wenn ich ihn in richtig verstanden habe, will er aber die Änderungen direkt umsetzen und nicht erst nach dem Schließen des Dialogs.
 

Scrimau

Mitglied
OK, da hast du recht.
Dann kann er sich mal das anschauen: Bestätigung vor Programmende (Java) - Byte-Welt Wiki

Ist dem Prinzip ähnlich, von dem was du wahrscheinlich machen möchtest.
Ich fand die Vorschläge von ireas OK.

Im Prinzip möchte ich Einstellungen von dem Nebenfenster auf Parameter im Hauptfenster (der Benutzerfreundlichkeit wegen 2 Fenster, da das Hauptfenster schon ziemlich prall ist) übertragen. Im Link ist zwar erwähnt wie ich Aktionen zum Zeitpunkt des Schließen von einem Fenster ausführen lassen kann, mich interessiert aber vordergründig wie ich Parameter von einem ins andere Fenster bekomme, wie ich also eine Schnittstelle realisiere.
 

L-ectron-X

Gesperrter Benutzer
Das geht am einfachsten, in dem du deinem JDialog eine Referenz auf das Hauptfenster übergibst.
Ein Interface halte ich hier für überflüssig.
 

ireas

Mitglied
Ich glaube, ich hab‘s :) Folgender Code, der IMHO das Richtige tut, funktioniert bei mir:

Java:
import javax.swing.JDialog;
import javax.swing.JFrame;

class A extends JFrame {
    public A(String title) {
        super(title);
        B b = new B(this);
        setVisible(true);
        b.test();
    }
    public void test() {
        System.out.println("Ja");
    }
}

class B extends JDialog {
    public B(JFrame parent) {
        super(parent);
        setVisible(true);
    }
    public void test() {
        if (getOwner() instanceof A) {
            A t = (A) getOwner();
            t.test();
        } 
    }
}

public class Test {
    public static void main(String[] args) {
        new A("aa");
    }
}
 

Scrimau

Mitglied
Das funktioniert beides 1a. Hab mich dann aber für die Lösung von L-ectron-X entschieden (war mit 2 Zeilen erledigt^^) Danke euch beiden :applaus:
Danke auch an alle anderen die geholfen haben.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M JavaFX Abstand zwischen AnchorPane und Labels in dem HBox halten AWT, Swing, JavaFX & SWT 1
U 2dgraphics unterschied zwischen .scale und AffineTransform.getScaleInstance AWT, Swing, JavaFX & SWT 4
S JavaFX Fehler zwischen View und Controller bei MouseEvent (MVC) AWT, Swing, JavaFX & SWT 13
missy72 JavaFX TableView Spalte zwischen den Zeilen AWT, Swing, JavaFX & SWT 5
L Kommunikation zwischen Klassen / Konstruktoren bei Swing AWT, Swing, JavaFX & SWT 9
Z Swing Kann man denn abstand zwischen zwei Buttons berechnen AWT, Swing, JavaFX & SWT 5
M Kommunikation zwischen zwei Stages AWT, Swing, JavaFX & SWT 0
T JavaFX - Datenübergabe zwischen Scenes AWT, Swing, JavaFX & SWT 8
S JavaFX Unterschiede zwischen Scene Builder 2.0 und der ausgeführten App AWT, Swing, JavaFX & SWT 17
Informatiknoob AWT Zahlenraten (eine Zahl zwischen 1 und 10) AWT, Swing, JavaFX & SWT 1
ralfb1105 JavaFX Daten zwischen Controllern austauschen- neue Frage AWT, Swing, JavaFX & SWT 7
ralfb1105 JavaFX Daten zwischen Controller "austauschen" AWT, Swing, JavaFX & SWT 65
L Wörter zwischen zwei Grenzen einlesen. AWT, Swing, JavaFX & SWT 13
P Zwischen verschiedenen Panels wechseln AWT, Swing, JavaFX & SWT 3
M Schnittpunkte zwischen zwei Graphics2D Elemente ermitteln. AWT, Swing, JavaFX & SWT 5
O Focus zwischen Chat und Spiel wechselns AWT, Swing, JavaFX & SWT 3
Z Swing Drag&Drop zwischen JTable und JTree AWT, Swing, JavaFX & SWT 4
Arif AWT Unterschied zwischen RED und red AWT, Swing, JavaFX & SWT 4
D Swing Kommunikation zwischen zwei GUI's AWT, Swing, JavaFX & SWT 2
L JavaFX Verbindung zwischen Beschreibung und Listener (Codebehind Klasse) AWT, Swing, JavaFX & SWT 4
D Zwischen Null-Layouts wechseln AWT, Swing, JavaFX & SWT 2
K Wie kann ich eine Variable zwischen Tab Klassen weitergeben ? AWT, Swing, JavaFX & SWT 7
S JavaFX (Best Practise) Daten zwischen Controllern austauschen AWT, Swing, JavaFX & SWT 1
P 2D-Grafik Bogen(Arc) zwischen zwei Punkten zeichnen AWT, Swing, JavaFX & SWT 2
P Drag & Drop zwischen Panels AWT, Swing, JavaFX & SWT 0
N Swing CardLayout: Problem beim Wechsel zwischen den JPanels AWT, Swing, JavaFX & SWT 3
B Vertikale Größenänderung zwischen zwei Widgets AWT, Swing, JavaFX & SWT 2
T Swing Kompatibilitätsproblem zwischen Swing und JavaFX AWT, Swing, JavaFX & SWT 4
S Verzögerung zwischen Cursorbewegung einbauen AWT, Swing, JavaFX & SWT 1
3 Swing Vertikaler Separator zwischen JMenu's AWT, Swing, JavaFX & SWT 2
D JGridLayout zwischen Zeilen bestimmter Abstand AWT, Swing, JavaFX & SWT 3
S Unterschied zwischen id und fx:id AWT, Swing, JavaFX & SWT 5
F Swing JAVA GUI Übergabe von Werten zwischen mehreren Fenstern/Klassen AWT, Swing, JavaFX & SWT 10
B Datenübergabe zwischen Tabs und Daten speichern AWT, Swing, JavaFX & SWT 2
B Kommunikation zwischen zwei Fenstern und vorübergehende Speicherung der Eingaben AWT, Swing, JavaFX & SWT 4
B Linie zwischen 2 Elementen AWT, Swing, JavaFX & SWT 5
D animierte kameraansicht zwischen gezeichneten objekten AWT, Swing, JavaFX & SWT 4
B Swing JMenu zwischen anderen Componenten AWT, Swing, JavaFX & SWT 4
F Swing Ladebildschirm zwischen zwei SWING Frames AWT, Swing, JavaFX & SWT 11
T JTabbedPane - neuen Tab zwischen zwei anderen Tabs hinzufügen AWT, Swing, JavaFX & SWT 2
GUI-Programmer JWindow zwischen den Desktopbild und Dektopverknüpfungen AWT, Swing, JavaFX & SWT 16
Psypsy Swing SwingWorker unterschied zwischen setProgress und process AWT, Swing, JavaFX & SWT 2
propra Schnittpunkt zwischen Objekt und Kante finden AWT, Swing, JavaFX & SWT 24
H Swing Wechsel zwischen Frames AWT, Swing, JavaFX & SWT 6
S Swing Zwischenräume zwischen JPanels AWT, Swing, JavaFX & SWT 4
A Daten umherschieben zwischen zwei Klassen AWT, Swing, JavaFX & SWT 40
X zwischen 2 JPanels "elegant" wechseln AWT, Swing, JavaFX & SWT 3
B LayoutManager Positionierung zwischen zwei Layoutkomponenten AWT, Swing, JavaFX & SWT 2
N Swing DnD zwischen zwei JTrees AWT, Swing, JavaFX & SWT 2
G Unterschiedliche Pfadangabe zu Icons zwischen JApplet und JWindow? AWT, Swing, JavaFX & SWT 2
D JTabel: Überschrift, Abstand zwischen Tabellen, Spalten-Farbe ändern AWT, Swing, JavaFX & SWT 2
G Swing MigLayout: Lücken zwischen Elementen entfernen AWT, Swing, JavaFX & SWT 2
F Variablen zwischen Frames AWT, Swing, JavaFX & SWT 5
V Swing JLabel zwischen 2 JPanel hin- und herbewegen. AWT, Swing, JavaFX & SWT 12
E Drag&Drop zwischen 2 Listen AWT, Swing, JavaFX & SWT 5
M SWT DND zwischen zwei TreViewern in beide Richtungen AWT, Swing, JavaFX & SWT 10
buntuswalus Swing Datentransfer zwischen JPanels AWT, Swing, JavaFX & SWT 18
P Swing Beziehungen zwischen 3 Klassen AWT, Swing, JavaFX & SWT 4
R Swing Kommunikation zwischen Panels AWT, Swing, JavaFX & SWT 2
algorismi Unterscheiden zwischen zwei JLists AWT, Swing, JavaFX & SWT 5
F JCombobox zwischen setEditable true und false switchen AWT, Swing, JavaFX & SWT 2
I Swing JPanel Tab zwischen GUI Elementen AWT, Swing, JavaFX & SWT 6
L Swing Kommunikation zwischen JMenuBar und anderen Componenten AWT, Swing, JavaFX & SWT 2
data89 Verbindungslinien zwischen Formen auf einer "Zeichenfläche" AWT, Swing, JavaFX & SWT 2
DeeDee0815 SWT Text Widget: Zwischen Single und Password umschalten AWT, Swing, JavaFX & SWT 3
J Unterschied zwischen SwingWorker und Threads AWT, Swing, JavaFX & SWT 4
G Variblenwert zwischen zwei Klassen übergeben AWT, Swing, JavaFX & SWT 3
G Gap zwischen JButton-Rand und JButton-Icon verändern AWT, Swing, JavaFX & SWT 2
T Kommunikation zwischen Zwei GUI-Klassen AWT, Swing, JavaFX & SWT 2
T Kommunikation zwischen zwei jFrames AWT, Swing, JavaFX & SWT 4
T GridLayout, zu wenig Platz zwischen Widgets AWT, Swing, JavaFX & SWT 3
S Abstand zwischen Labeln auf 0 setzen AWT, Swing, JavaFX & SWT 6
J Unterschied zwischen nicht-statischen und statischen Klassen AWT, Swing, JavaFX & SWT 5
G Datenaustausch zwischen zwei JFrames AWT, Swing, JavaFX & SWT 3
O Zwischen mehreren Bildern wechseln AWT, Swing, JavaFX & SWT 6
T JTextField, der nur Werte zwischen 100 und 1000 zulässt AWT, Swing, JavaFX & SWT 28
M Linie zwischen JComponents AWT, Swing, JavaFX & SWT 5
G Abstand zwischen den Buttons in einer Toolbar AWT, Swing, JavaFX & SWT 3
G Drag&Drop zwischen JTables AWT, Swing, JavaFX & SWT 2
P Unterscheiden zwischen Mautasten-Druck? AWT, Swing, JavaFX & SWT 3
B Abstand zwischen einzelnen Elementen einstellen AWT, Swing, JavaFX & SWT 2
I Drag and Drop zwischen zwei JTables AWT, Swing, JavaFX & SWT 5
N JTable Abstand zwischen einzelnen Spalten AWT, Swing, JavaFX & SWT 6
K JFreeChart: Platz zwischen Balken AWT, Swing, JavaFX & SWT 3
G Zwischen Panels in einem JFrame wechseln AWT, Swing, JavaFX & SWT 4
M Unterschied zwischen paintComponent() und paint()? AWT, Swing, JavaFX & SWT 4
R Navigieren zwischen mehreren Fenstern AWT, Swing, JavaFX & SWT 7
F Wie gebe ich Parameter zwischen Actions weiter? AWT, Swing, JavaFX & SWT 2
K abstände zwischen Panels? AWT, Swing, JavaFX & SWT 3
M Freiraum zwischen Knoten im JTree AWT, Swing, JavaFX & SWT 14
M Parameterübergabe zwischen Frames AWT, Swing, JavaFX & SWT 2
P in JFrame zwischen verschiedenen JPanels wechseln AWT, Swing, JavaFX & SWT 7
M Breite veraendern zwischen 2 JPanels AWT, Swing, JavaFX & SWT 2
J Separator zwischen den einzelnen Symbolen in der Toolbar AWT, Swing, JavaFX & SWT 4
A Button zwischen zwei Panels verschieben. AWT, Swing, JavaFX & SWT 6
G abstand zwischen den buttons unterschiedlich AWT, Swing, JavaFX & SWT 2
S Wechsel zwischen JFrame und JDialog durch Benutzerauswahl AWT, Swing, JavaFX & SWT 2
Z komponenten "einfrieren" - abstand zwischen AWT, Swing, JavaFX & SWT 10
G Ungewollter Abstand zwischen Gui -Elementen / Insets setzen AWT, Swing, JavaFX & SWT 2
G BoxLayout: Abstand zwischen vertikalen Komponenten! AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben