Referenz zu anderen Frame

B3ast

Mitglied
Hallo liebe Forencommunity. Da ich ein Problem bei meinem Programm habe wende ich mich hoffnungsvoll an euch. ;)

Ich habe im Hauptfenster einige ToggleButtons, dieses Hauptfenster ist immer geöffnet. Wenn ich auf einen togglebutton klicke wird ein anderes jFrame aufgerufen und bei erneutem Klick geschlossen. Soweit funktioniert es. Jedoch wenn ich so ein geöffnetes Fenster per Klick schließe (X) dann weiß ich nicht wie ich an die jToggleButtons im Hauptfenster rankomme. Denn diese sollten dann nicht mehr eingerastet, also aktiviert sein, also will ich sie mit jToggleButton1.doClick(); deaktivieren.

Normalerweise mache ich es immer so:
Java:
Mainframe mainframe = new Mainframe();
mainframe.veraendereButtons();

Das geht aber nicht da ich in mainframe selbst auch eine Verlinkung zu dem jFrame habe. Ich will also einen ToggleButton im Hauptfenster verändern wenn ich bspw. das jFrame "database" schließe. Das windowevent habe ich bereits überschrieben und eine "Ersatzmethode" erstellt, nur weiß ich jetzt nicht wie ich die Togglebuttons verändern kann. Über jegliche Hilfe wäre ich sehr dankbar. :)

mfg
B3ast
 
Zuletzt bearbeitet:

B3ast

Mitglied
meinst du das hier?

Java:
addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(WindowEvent e) {
                exit();
            }
        });

Wenn ja, was sollte ich dann in exit schreiben?

Außerdem wollte ich euch noch eine 2. Frage stellen. Gibt es eine Möglichkeit diesen grau-punktierten-selektierand abzuschalten. Den den man immer hat wenn man auf einem Button/Table/List klickt und den man mit .requestFocus(); wegbekommt. Gibt es eine Möglichkeit diesen generell auszuschalten/auszublenden?
 
Zuletzt bearbeitet:

Monaria

Aktives Mitglied
Jeder Button ist doch eindeutig mit einem JFrame verbdunden, also kannst du jedem JFrame seinen zugehörigen Button im Konstruktor übergeben. Dadurch kannst du in windowClosing leicht auf den Button zugreifen.

Eventuell musst du sogar nicht ständig neue Fenster erstellen, wenn ein Button geklickt wird - du könntest sie einfach unsichtbar machen und dann wieder sichtbar machen. Natürlich müsstest du dann, sofern gewünscht, Größe und Position wiederherstellen, allerdings wären dann eventuelle Eingaben gesichert, falls man dochmal auf das kleine X kommt...aber das nur so am Rande.

Java:
public class MyFrame extends JFrame implements WindowListener {
	JToggleButton b;
	
	public MyFrame(JToggleButton b){
		this.b = b;
                ...
	}
	
	public void windowClosing(WindowEvent e){
		//Hier kannst du dich um den Button und andere Dinge kümmern
	}
}
 

Volvagia

Top Contributor
Genau so meinte ich, nur würde ich die JToggleButtons nicht übergeben sondern im Mainframe von außen den Listener an "database" (Imho schlechter Name, DatabaseFrame oder DatabaseIoFrame wäre besser) hängen.
 

B3ast

Mitglied
Wir reden aneinander vorbei. Tut mir leid wenn ich manchmal bei Programmierbegriffen bisserl schwach bin. Ich erklärs einfach nochmal :)

Ich habe 4 Klassen. Eine Hauptklasse, welche drei verschiedene Fenster (Frames, Klassen) mit 3 ToggleButtons per setVisible "öffnet". In dieser Hauptklasse klicke ich auf einen togglebutton, ein anderes jFrame öffnet sich:

Java:
public class Mainframe extends javax.swing.JFrame {

    Einstellungen einstellungen = new Einstellungen();
    Statistiken statistiken = new Statistiken();
    Database database = new Database();

public Mainframe{...}

private void jToggleButton3MouseReleased(java.awt.event.MouseEvent evt) {
            if (button1 == true) {
                button1 = false;
                database.setVisible(false);
            }   else    {
                button1 = true;
                database.setVisible(false);
            }
}

Java:
public Database() {
        initComponents();
        addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(WindowEvent e) {
                exit();
            }
        });
}

void exit()   {
// hier möchte ich auf mainframe zugreifen
}


In database existiert ein Windowlistener, welche die Methode exit in database aufruft wenn das X geklickt wird. Durch diese Methode soll dann in die Hauptklasse zugegriffen werden und genau hier ist mein Problem, denn das schaffe ich nicht. Ich will also in der exit-Methode von dem einen (noch geöffnetem) jFrame in dem mainframe einen Button umlegen.

Hoffe jetzt hab ichs richtig erklärt. :)
 

Volvagia

Top Contributor
Warum gibst du den package-Path zu den Klassen an? Oo
Registriere am Database-Frame einen Listener, und setze dort den JToggleButton unselected. *wdh*
 

B3ast

Mitglied
Ich weiß jetzt nicht ob es an mir lag oder nicht, ich habe die Lösung jedenfalls. Es ging um eine "einfache" Referenz zwischen 2 Klassen. Wenn der ToggleButton geklickt wurde öffnet sich ein Fenster, ein anderes jFrame. Wird das Fenster geschlossen soll der Togglebutton erneut geklickt werden. Die 2 Klassennamen lauten: Mainframe und Database.

Ich post hier mal den Code, vll. hat ja jemand dasselbe Problem und es hilft. Die Einrückungen sind nicht so gelungen aber das dürfte mehr oder weniger egal sein. :)

Achja, @Volvagia: Was ist ein Packagepfad? Dachte das ist sowas hier: package XY; Falls du etwas anderes meinst, wirds wohl Netbeans von selbst erstellt haben. In der Schule benutzen wir Netbeans zum Programmieren deswegen verwende ich es auch privat. Und das sind wohl oder übel ein paar Dinge dabei die ich nach 2 Jahren noch nicht verstehe. :) (Und nein, es ist kein Schulprojekt, weil ich das gerade in den Regeln gelesen habe ;))

Genau so meinte ich, nur würde ich die JToggleButtons nicht übergeben sondern im Mainframe von außen den Listener an "database" (Imho schlechter Name, DatabaseFrame oder DatabaseIoFrame wäre besser) hängen.

Was meinst du genau damit und wie würde das funktionieren?

Java:
public class Mainframe extends javax.swing.JFrame {

    Database database = new Database(this); 
    boolean button2 = false;

    void toggle2() {
        jToggleButton2.doClick();
        jToggleButton2.setIcon(new ImageIcon(getClass().getResource("Database1.png")));
        button2 = false;
    }

private void jToggleButton3MouseReleased(java.awt.event.MouseEvent evt) { // zum Verständnis

            if (button2 == false) {
                button2 = true;
                jToggleButton2.setIcon(new ImageIcon(getClass().getResource("Database2.png")));
                database.setVisible(true);
            } else {
                button2 = false;
                database.setVisible(false);
                jToggleButton2.setIcon(new ImageIcon(getClass().getResource("Database1.png")));
            }

}

}
Java:
public class database extends javax.swing.JFrame {
    Database(Mainframe aThis) {
    mainframe = aThis;
           
    addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(WindowEvent e) {
                exit();
            }
      });

void exit()   {
mainframe.toggle2();
}
}
}
 
Zuletzt bearbeitet:

Monaria

Aktives Mitglied
Gemeint war wohl etwas in die Richtung:
Java:
class MyWindowAdapter extends WindowAdapter{
     private JToggleButton button;

     public MyWindowAdapter(JToggleButton button){
          this.button = button;
     }

     public void windowClosing(WindowEvent e){
          button.doClick();
     }
}

Das hat den Vorteil, das Code aus der Klasse Database verschwindet und alles übersichtlicher wird, da der Listener sich auch wiederverwenden lässt.
Dem erzeugten JFrame wird lediglich über
Java:
database.addWindowListener(new MyWindowAdapter(myButton));
der Listener angehängt.
 

B3ast

Mitglied
Vielen Dank für diese ausführliche Erklärung :) Wieder etwas gelernt, denn dieser Weg wäre mir wohl als Letztes eingefallen, obwohl er in meinem Fall wohl der Beste gewesen wäre.

mfg
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
Hzrfa Objekte, Referenz Java Basics - Anfänger-Themen 5
I Grundsatzfrage: Belegt eine Referenz auf 'null' RAM, und wenn ja - wieviel ;-) ? Java Basics - Anfänger-Themen 5
O Warum bekommen wir nicht die Referenz vom zurückgegebenen Objekt? Java Basics - Anfänger-Themen 4
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
C Kopie oder Referenz ? Java Basics - Anfänger-Themen 5
A Binärbaum rekursiv durchsuchen und Referenz zurückgeben Java Basics - Anfänger-Themen 4
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
Y Pointer / Referenz - Theorie Java Basics - Anfänger-Themen 3
H Referenz Objekt aufrufen Java Basics - Anfänger-Themen 12
D Uebergabe per Referenz Java Basics - Anfänger-Themen 2
O Referenz - toString Java Basics - Anfänger-Themen 9
S This-Referenz Java Basics - Anfänger-Themen 6
I Referenz auf Klasse als Rückgabewert Java Basics - Anfänger-Themen 7
P Datentypen LinkedList: Kopie behält Referenz? Java Basics - Anfänger-Themen 3
J Referenz und Instanzierung Java Basics - Anfänger-Themen 25
I Erste Schritte Referenz zum Knoten davor, in einer Liste Java Basics - Anfänger-Themen 4
M Referenz geht bei Zwischenspeichern verloren (ArrayList) Java Basics - Anfänger-Themen 4
8 Referenz (Pointer, Zeiger) in Java Java Basics - Anfänger-Themen 9
O This-Referenz als Returnwert einer Methode? Java Basics - Anfänger-Themen 13
O This Referenz Java Basics - Anfänger-Themen 3
A top referenz bei queues Java Basics - Anfänger-Themen 1
J Rückgabe als Wert, keine Referenz Java Basics - Anfänger-Themen 3
Q Parameterübergabe - Objekt - Referenz Java Basics - Anfänger-Themen 5
C Dynamische Referenz & abstrakte Klassen Java Basics - Anfänger-Themen 3
V Frage zu Polymorphismus: Objekt der Subklasse in Referenz der Oberklasse Java Basics - Anfänger-Themen 4
T Aufgerufene Methode Inhalt der übergebenen Referenz Java Basics - Anfänger-Themen 5
B Referenz in Java Java Basics - Anfänger-Themen 5
C Referenz auf ein Objekt kopieren! Java Basics - Anfänger-Themen 2
J Methoden Referenz und Speicherplatz für Objekte reservieren Java Basics - Anfänger-Themen 2
M Wie komm ich an die Referenz eines Oberflächenelements Java Basics - Anfänger-Themen 2
A Klassenvariablen Referenz auf ein Objekt Java Basics - Anfänger-Themen 18
M Referenz Frage Java Basics - Anfänger-Themen 12
K OOP Probleme mit Objekt-Referenz in Methode Java Basics - Anfänger-Themen 6
W Die leidige Referenz-Frage Java Basics - Anfänger-Themen 9
B Arraycopy kopiert nur die Referenz?! Java Basics - Anfänger-Themen 3
S Speicheradresse auf die eine Referenz zeigt ausgeben Java Basics - Anfänger-Themen 12
E Compiler-Fehler kann Objekt-Referenz nicht erstellen Java Basics - Anfänger-Themen 3
Blackskyliner Referenz ähnlicher Zugriff, aber wie? Java Basics - Anfänger-Themen 4
K Klassen this-Referenz und Klassen/Methodenaufruf Syntax Java Basics - Anfänger-Themen 3
C Referenz einer bereits instanziierten Klasse während des Programmablaufs Java Basics - Anfänger-Themen 16
H Objekt holen per Referenz als String. Java Basics - Anfänger-Themen 4
T Referenz einer Variable übergeben Java Basics - Anfänger-Themen 3
S Datentypen Objekt Integer Referenz Java Basics - Anfänger-Themen 5
B Referenz auf Referenz Java Basics - Anfänger-Themen 3
Luk10 Problem mit Singleton bzw statischer Referenz! Java Basics - Anfänger-Themen 16
H ArrayList Zugriffe per Referenz verkürzen? Java Basics - Anfänger-Themen 9
B Static Referenz auf Non-static Feld Java Basics - Anfänger-Themen 6
Luk10 Sinn von Instanzierung ohne Referenz Java Basics - Anfänger-Themen 7
C0FFEE Referenz auf Methode übergeben Java Basics - Anfänger-Themen 2
aze NullpointerException :Null Referenz anzeigen lassen Java Basics - Anfänger-Themen 2
D Fehlen einer Referenz auf Objekt Java Basics - Anfänger-Themen 14
N this.referenz erläuterung Java Basics - Anfänger-Themen 2
K Attribut als Referenz auf Objekt Java Basics - Anfänger-Themen 8
K 3 Threads bearbeiten 1 Referenz: Ich versteh's nicht... Java Basics - Anfänger-Themen 2
P OOP-Theorie-Frage: Referenz auf Objekt Java Basics - Anfänger-Themen 27
D Referenz auf Objekt Java Basics - Anfänger-Themen 5
P Methode BigInteger-Array übergeben als Referenz Java Basics - Anfänger-Themen 6
U null-referenz Java Basics - Anfänger-Themen 26
deetee Problem mit Referenz auf Map Java Basics - Anfänger-Themen 5
G Interface referenz probleme Java Basics - Anfänger-Themen 10
V Return - JA/NEIN - Parameterübergabe Array (Referenz) Java Basics - Anfänger-Themen 7
D enum und Referenz der umgebenden Klasse Java Basics - Anfänger-Themen 2
C Referenz Java Basics - Anfänger-Themen 11
A ClassNotFoundException: Referenz nicht aktualisiert Java Basics - Anfänger-Themen 2
P Textarea aktualisieren, Referenz fehlt Java Basics - Anfänger-Themen 4
T Die this Referenz Java Basics - Anfänger-Themen 21
C Größe einer Referenz ? Java Basics - Anfänger-Themen 16
D Array reverse Problem, da Referenz nicht auf tmpArray zeigt Java Basics - Anfänger-Themen 4
G primitive Datentypen als Referenz an eine Methode übergeben Java Basics - Anfänger-Themen 2
G Wie Referenz auf Objekt übergebn Java Basics - Anfänger-Themen 8
P Objekte als Attribut: Referenz oder Kopie? Java Basics - Anfänger-Themen 3
G Parameterübergabe als Referenz bzw. als Kopie Java Basics - Anfänger-Themen 4
S Prüfen, ob null Referenz? Java Basics - Anfänger-Themen 2
G Referenz-Problem Java Basics - Anfänger-Themen 3
J Referenz problem Java Basics - Anfänger-Themen 12
D tiefergehende Java-Referenz Java Basics - Anfänger-Themen 3
M Referenz auf Membervariable Java Basics - Anfänger-Themen 5
G Objektübergabe als Referenz bei RMI Java Basics - Anfänger-Themen 2
J referenz auf noch nicht erzeugte objekte? Java Basics - Anfänger-Themen 2
G Rückgabe einer Kopie bzw. Referenz Java Basics - Anfänger-Themen 22
M Parameter als Referenz übergeben Java Basics - Anfänger-Themen 5
F Referenz Pointer oder doch nochmal neu suchen ? Java Basics - Anfänger-Themen 2
D Unterschied zwischen Referenz auf Objekt/Instanz von Objekt Java Basics - Anfänger-Themen 9
K Referenz auf Funktion Java Basics - Anfänger-Themen 6
J Referenz auf ein Objekt Java Basics - Anfänger-Themen 2
javasdann Referenz als String ausgeben. Java Basics - Anfänger-Themen 10
B Was ist eine Referenz? Java Basics - Anfänger-Themen 6
Z Zugriff auf Attribute nach Zuweisung einer Referenz Java Basics - Anfänger-Themen 8
L Referenz vs. Kopie Java Basics - Anfänger-Themen 2
G Zeiger/Referenz auf int- Variable Java Basics - Anfänger-Themen 5
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
P Gibt es einen anderen Weg um "{}" in IntelliJ zu schreiben? Java Basics - Anfänger-Themen 5
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
I XML und Interfaces aus anderen Projekten Java Basics - Anfänger-Themen 3
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
L Methoden in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
A Ein Array bearbeiten und in einer anderen Methode nutzen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben