Anderes Fenster neu laden

Arag1145

Mitglied
Liebes Forum!
Ich versuche gerade mit einem Button in einer GUI ein anderes Fenster zu schließen, jedoch kommt immer Fehlermeldung:
Java:
Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: String index out of range: -1

Mein (einfacher) Code hierfür:
Java:
GUIMitarbeiter guima = new GUIMitarbeiter();
guima.dispose();

Ich will das ganze bewerkstelligen, weil ich in dem einen Fenster in meine Datenbank neue Werte einfüge, welche in der anderen GUI angezeigt werden sollen. Wenn ich nun aber die Werte einfüge und das Fenster schließe, werden die Werte in der anderen GUI nicht aktualisiert.

Gibt es hierfür auch andere Lösungsmethoden?

LG :)
 

VfL_Freak

Top Contributor
Moin,

ich glaube kaum, dass die SOB-Exception an genau der Stelle entsteht :noe: kein String weit und breit ;)

Poste mal den den gesamten Stacktrace und dann auch den dazu relevanten Code !

Gruß
Klaus
 

Arag1145

Mitglied
Du hast Recht, der Fehler entsteht wo anders, allerdings entsteht er nur, wenn ich versuchen will guima.dispose(); aufzurufen.
Wenn ich den anderen Code auskommentiere, der Button also nur
Java:
    GUIMitarbeiter guima = new GUIMitarbeiter();
    guima.dispose();
ausführen soll, passiert überhaupt nichts. Wieso?

lg
 

VfL_Freak

Top Contributor
Moin,

welchen anderen Code ??? :bahnhof:
Sollen wir das raten ???

Genau da liegt dann doch (möglicherweise) der Hase im Pfeffer !

Außerdem ....
Java:
GUIMitarbeiter guima = new GUIMitarbeiter();
guima.dispose();
Du erzeugst ein Objekt (möglicherweise ein Fenster/Frame/was_auch_immer), zeigst es aber nicht an, sondern disposed es sofort???

Was soll denn das wohl Deiner Meinung nach passieren ???

Gruß
Klaus
 

Arag1145

Mitglied
Der andere Code ist für mein Problem nicht ausschlaggebend.
Ich will ein offenes Fenster mit einem anderen Fenster schließen

So:
Fenster A öffnet Fenster B, soll dabei aber offen bleiben.
Wenn ich nun einen Button in Fenster B drücke, soll ich Fenster A schließen.
 

VfL_Freak

Top Contributor
Du musst dann dabei (oder wo auch immer) einen STRING benutzen!!
Sonst gäbe es keine StringIndexOutOfBoundsException!!

Poste wengistens mal den gesamten Stacktrace ... darin sieht man doch WO der Fehler auftritt!

Mit dem Öffnen/Schließen kann es nicht zu tun haben !!!
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
Vielleicht noch zur Erklärung:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.charAt(String.java:558)
at Test.ausgabe(Test.java:5)
at Test.main(Test.java:9)

Es wurde versucht auf ein einzelnes Zeichen eines Strings zu zugreifen. Das ist natürlich möglich, jedoch darf dabei der Zugriffsindex nicht außerhalb des zulässigen Bereichs liegen. Das erste Zeichen eines Strings hat den Index 0, das letzte Zeichen hat den Index n-1, wenn n die Länge des Strings ist. Dazwischen ist der Zugriff erlaubt. Hat der String die Länge 0, so ist demnach auch kein Index zulässig.
Hilfreich bei der Fehlersuche ist der ausgegebene Index der den Fehler verursacht hat. Im obigen Beispiel ist dies die -1.
Quelle: Fehlermeldungen (Java) ? Infostudium Wiki
 

VfL_Freak

Top Contributor
hmm, auch das ist ohne Deine Code schwierig :eek:

Steht dies hier etwa SO im actionPerformed des Button?
Java:
GUIMitarbeiter guima = new GUIMitarbeiter();
guima.dispose();
dann erzeugst Du hier, wie ich bereits schrieb, ein NEUES Objekt, das Du dann disposed .....

Lass' mal die Zeile mit dem "new" weg ... davon ausgehend, dass das Objekt das Du schliessen willst existiert (also an anderer Stelle schon erzeugt und angezeigt wurde) und dort auch wirklich "guima" heißt!

[EDIT]
sprich: Du halt schon das Objekt disposen, dass Du zuvor erzeugt und angezeigt hast !!
[/EDIT]

Gruß
Klaus
 
Zuletzt bearbeitet:

Arag1145

Mitglied
Nunja, ich erstelle mithilfe folgender Codestelle

Java:
			@Override
			public void actionPerformed(ActionEvent e) {
				EventQueue.invokeLater(new Runnable() {
					public void run() {
						try {
							GUINeuerMitarbeiter frame = new GUINeuerMitarbeiter();
							frame.setVisible(true);
						} catch (Exception e) {
							e.printStackTrace();
						}
					}
				});
			}
		});

in Fenster A ein neues Fenster, nennen wir es Fenster B.
In diesem Fenster B liegt nun ein Button, welcher Fenster A (läuft im Hintergrund weiter) schließen soll.

Da es mit
Java:
    GUIMitarbeiter guima = new GUIMitarbeiter();
    guima.dispose();

offensichtlich nicht funktioniert (Code wird in Fenster B ausgeführt), muss es doch eine andere Lösung geben, oder?
 

VfL_Freak

Top Contributor
Moin,

Nun ja, ich erstelle mithilfe folgender Codestelle
Java:
			@Override
			public void actionPerformed(ActionEvent e) {
				EventQueue.invokeLater(new Runnable() {
					public void run() {
						try {
							GUINeuerMitarbeiter frame = new GUINeuerMitarbeiter();
							frame.setVisible(true);
						} catch (Exception e) {
							e.printStackTrace();
						}
					}
				});
			}
		});

in Fenster A ein neues Fenster, nennen wir es Fenster B.
In diesem Fenster B liegt nun ein Button, welcher Fenster A (läuft im Hintergrund weiter) schließen soll.
Ok, so weit - so gut ;)

Da es mit
Java:
    GUIMitarbeiter guima = new GUIMitarbeiter();
    guima.dispose();
offensichtlich nicht funktioniert ...
Natürlich nicht - siehe oben!

Dann sollte das actionPerformed dieses Button so ausschauen:
Java:
public void actionPerformed(ActionEvent e) 
{
    fenster_A.dispose();
}
Du musst nur sicherstellen, dass der Code zu B das Objekt A auch kennt !!

Gruß
Klaus
 

VfL_Freak

Top Contributor
Ein letztes Mal :
Was glaubst Du, was das Schlüsselwort new bewirkt ?????
Es erzeugt an der Stelle eine neues Objekt!!
Damit kannst Du doch nicht auf Dein vorhandes Fenster A zugreifen .... :noe:

Übergib' Dein Fenster A einfach an B :
Java:
try 
{
    GUINeuerMitarbeiter frame = new GUINeuerMitarbeiter( this );
    frame.setVisible(true);
}

Du musst dan natürlich auch den Konstruktor zu Fenster B entsprechend anpassen:
Java:
... GUINeuerMitarbeiter( Fenster_A myA);

unjd dann halt:
Java:
public void actionPerformed(ActionEvent e)
{
    myA.dispose();
}

Gruß
Klaus
 

Arag1145

Mitglied
Vielen Dank für deine Hilfe und für deine Geduld, aber es funktioniert immer noch nicht.
Code:
Java:
btnNeuerArbeiter.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent e) {
				EventQueue.invokeLater(new Runnable() {
					public void run() {
						try {
							GUINeuerMitarbeiter frame = new GUINeuerMitarbeiter(this);
							frame.setVisible(true);
						} catch (Exception e) {
							e.printStackTrace();
						}
					}
				});
			}
		});

soweitsogut, dass Problem ist jetzt aber, dass
Java:
... new GUINeuerMitarbeiter(this)
folgendes ausspuckt:
Java:
The constructor GUINeuerMitarbeiter(new Runnable(){}) is undefined
. Er will, dass ich in Fenster B den Constructor zu
Java:
public GUINeuerMitarbeiter(Runnable runnable)
ändere, womit ich aber nicht das Fenster A schließen kann.

Vorschläge?
 

VfL_Freak

Top Contributor
ach ja, sorry, hatte jetzt nicht an Deinen Thread gedacht ;(
Du musst dann natürlich den this-Zeiger mit Deinem Package und der Klasse spezifizieren !

Leider weiß ich nun noch immer nicht wirklich, wie beide benannt sind ...
Ich gehe jetzt mal davon aus, dass Deine Klasse in Wirklichkeit "GUIMitarbeiter" heißt und sie bspw. im Package "aaa.bbb.myApp" beheimatet ist ...

Java:
try
{
    GUINeuerMitarbeiter frame = new GUINeuerMitarbeiter( aaa.bbb.myApp.GUIMitarbeiter.this );
    frame.setVisible(true);
}

Gruß
Klaus
 

VfL_Freak

Top Contributor
na, GottseiDank :lol:

[EDIT]
BTW: was ist denn nun mit Deiner Eingangsfrage nach der SOOB-Exception? Gelöst??
[/EDIT]
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Best Practice Erfahrungswerte für eine Migration von JSF nach Angular (oder anderes JS-Framework) Allgemeine Java-Themen 1
Drachenbauer Wie kann ich das Wort "concrete" in einem String durch ein anderes Wort ersetzen lassen? Allgemeine Java-Themen 5
Anfänger2011 Java Server oder lieber was anderes Allgemeine Java-Themen 16
C anderes Programm schließen! Allgemeine Java-Themen 5
J System.arraycopy ergibt anderes Resultat als for-loop Allgemeine Java-Themen 4
J Java Auf anderes Programm warten Allgemeine Java-Themen 9
S JTable: Model durch ein anderes ersetzen Allgemeine Java-Themen 2
B Input/Output Schneller Sort mit wenigen Zugriffen (oder was anderes?) Allgemeine Java-Themen 3
M Graphen erzeugen und visualisieren, jgraph oder was was anderes? Allgemeine Java-Themen 2
C Mit Java in einem anderes Programm eingreifen Allgemeine Java-Themen 21
M Nach Programmdurchlauf werden Zeichen falsch dargestellt + Anderes Verhalten unter Windows Allgemeine Java-Themen 6
F Anderes Java-Programm aufrufen Allgemeine Java-Themen 2
D instanceof oder was anderes? Allgemeine Java-Themen 12
S jConsole oder anderes Monitoring Tool Allgemeine Java-Themen 5
C Datenbank - Textfiles - Anderes Allgemeine Java-Themen 34
X Warum kann ich keine ZIP Datein mit renameto() in was anderes benennen? Allgemeine Java-Themen 13
C Anderes Programm aus Taskleiste in Vordergrund bringen Allgemeine Java-Themen 2
V Anderes tmp-dir bei jars? Allgemeine Java-Themen 2
G System.out und String machen was anderes Allgemeine Java-Themen 5
M Eigene .jar in anderes Programm importieren[eclipse] Allgemeine Java-Themen 6
MQue Array in ein anderes Array kopieren Allgemeine Java-Themen 5
N Array Element vom Typ eines Objekts zeigt auf ein anderes A. Allgemeine Java-Themen 4
G Jar File soll anderes benutzen Allgemeine Java-Themen 3
N Wie parameter von java aus an anderes Programm übergeben? Allgemeine Java-Themen 7
K Datum in ein anderes Format bringen Allgemeine Java-Themen 5
K Überschreiben von 'static'-Methoden hat anderes Verhalten? Allgemeine Java-Themen 2
T Musikdateien in ein anderes Musikdateienformat konvertieren Allgemeine Java-Themen 5
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
berserkerdq2 Weiß jemand wie ich im Scenebuilder das Fenster so darstellen kann, dass beim Vollbildmodus die Objekte so angezeigt werden? Allgemeine Java-Themen 1
A Zusammenspiel javafx Fenster Allgemeine Java-Themen 1
M StdDraw-Fenster schliessen Allgemeine Java-Themen 1
D Klassen 2 Fenster in GUI Allgemeine Java-Themen 3
H Hilfe bei Erstellung eines Hilfe Fenster bei Tastendruck (F1 bei Win98) Allgemeine Java-Themen 5
T Fenster schließen verhindern Allgemeine Java-Themen 13
C Durch klicken von Button in GUI wird leeres Fenster geöffnet und nicht mein Spiel "Memory" Allgemeine Java-Themen 13
K Interface Fenster mit Regler Allgemeine Java-Themen 2
S BMI Rechner mit eclipse Visual Editor (Seperates Fenster) Allgemeine Java-Themen 7
F Fenster schließen bei Klick auf Kreuz Allgemeine Java-Themen 14
P Herausfinden, ob ein Process ein Fenster hat Allgemeine Java-Themen 1
K Doppeltes Fenster Allgemeine Java-Themen 3
F DOS-Fenster unterdrücke? Allgemeine Java-Themen 0
B Geöffnetes Fenster verifizieren Allgemeine Java-Themen 2
T LookAndFeel Java Skinning Fenster Allgemeine Java-Themen 13
M CapsLock abfragen wenn Fenster wieder aktiviert wird Allgemeine Java-Themen 5
E Prüfen ob Fenster mit Namen offen ist Allgemeine Java-Themen 2
N verdeckte Fenster werden im Vordergrund gezeichnet Allgemeine Java-Themen 6
N Fenster lädt nicht Allgemeine Java-Themen 28
J Zugriff auf Poker-Client Fenster Allgemeine Java-Themen 14
A Erkennen welches Fenster bei windowDeactivated aktiviert wird? Allgemeine Java-Themen 2
S Frage für ein popup Fenster Allgemeine Java-Themen 4
J Swing Wird invisible, nicht-ref. Fenster vom GC entfernt? Allgemeine Java-Themen 11
Z Fenster vergrößern und verkleiern Allgemeine Java-Themen 14
S Fenster "verschwindet" nicht, trotz setVisible(false); Allgemeine Java-Themen 22
A Zeichen beim Eingeben in ein DOS-Fenster nicht anzeigen? Allgemeine Java-Themen 3
J X11 app in Java Fenster Allgemeine Java-Themen 4
R Von Java aus Browser Fenster oeffnen und Webseite ausgeben? Allgemeine Java-Themen 2
H Fenster focus Allgemeine Java-Themen 5
Escorter .jar Datei Classpath mitgeben ohne Dos Fenster Allgemeine Java-Themen 8
ARadauer Fenster suchen und Verschieben Allgemeine Java-Themen 6
G Keyboard Shortcut (bei nicht aktivem fenster) Allgemeine Java-Themen 2
Steev Screenshot vom Bereich behind dem aktuellen Fenster machen Allgemeine Java-Themen 24
D Welches Fenster ist im moment aktiv? Allgemeine Java-Themen 11
T Java Fenster Allgemeine Java-Themen 5
C Fenster öffnen Allgemeine Java-Themen 4
P Login- Fenster Allgemeine Java-Themen 11
B kleines modales transparents Fenster ohne rahmen und buttons Allgemeine Java-Themen 15
J text aus externem fenster lesen Allgemeine Java-Themen 3
F neues fenster Allgemeine Java-Themen 3
P JTabbedPane Fenster minimieren Allgemeine Java-Themen 15
K Warten auf die Eingabe aus Fenster.... Allgemeine Java-Themen 2
M neue Thread in neuem Fenster Allgemeine Java-Themen 3
MQue Fenster aufklappen Allgemeine Java-Themen 3
C Fenster blinken lassen Allgemeine Java-Themen 2
T Explorer-Fenster öffnen mit Java Allgemeine Java-Themen 9
S Windows Fenster finden Allgemeine Java-Themen 9
E Wie bekomme ich mein Image in das Fenster Allgemeine Java-Themen 2
E Mit Button ein Fenster öffnen Allgemeine Java-Themen 4
G Java Fenster öffnen nach Iconklick(desktop) (helppls) Allgemeine Java-Themen 3
G Das aktuelle Fenster drucken Allgemeine Java-Themen 13
G mehrere JPanels als Fenster benutzen Allgemeine Java-Themen 3
M ALT-F4 fenster schließen unterdrücken Allgemeine Java-Themen 2
S Swing - Problem mit Fenster-/Komponenten-Größe Allgemeine Java-Themen 3
M 2 verschiedene LookAndFeels in einem Fenster möglich? Allgemeine Java-Themen 6
G Leere Fenster (Keine Schrift, Reiter/ Buttons) bei Java Allgemeine Java-Themen 5
F Fenster friert ein! Allgemeine Java-Themen 2
K JAVA Fenster-Modi Allgemeine Java-Themen 5
S fenster umbenennen Allgemeine Java-Themen 4
J Fenster aufpopen lassen? Allgemeine Java-Themen 8
N Java Fenster schließen Allgemeine Java-Themen 2
B JNI: HWND von aufrufendem Fenster bekommen. Allgemeine Java-Themen 4
W Fenster (EXCEL) aktivieren Allgemeine Java-Themen 6
J Fenster mit paint Methode selbst zeichnen Allgemeine Java-Themen 3
G Fenster verbinden (docken) Allgemeine Java-Themen 4
G Fenster/Frame schließen Allgemeine Java-Themen 16
L Windows-Fenster "Arbeitsplatz" anzeigen Allgemeine Java-Themen 13
G Auf KeyEvent reagieren, wenn das Fenster nicht aktiv ist Allgemeine Java-Themen 8
C alle Fenster bleiben grau Allgemeine Java-Themen 4
G Fenster durch eigenen Button minimieren Allgemeine Java-Themen 6
O Maven ein externes jar laden ohne die Applikation neu zu kompilieren Allgemeine Java-Themen 4
F Laden von bestimmten Daten aus TAR Archiv Allgemeine Java-Themen 23

Ähnliche Java Themen

Neue Themen


Oben