Fenster an bestehendem Fenster ausrichten

sebby

Mitglied
Hallo,

ist es möglich ein neues Fenster an einem bestehenden Fenster auszurichten?
Ich möchte nämlich, dass sich ein neu geöffnetes Fenster zentriert zu dem bereits geöffneten Fenster ausrichtet.
 
alle Klassen die von Window erben besitzen die Methode
Code:
setLocationRelativeTo(Component)
damit werden diese Fenster zentriert zum übergebenen Objekt angeordnet.
 
Meine Klasse erbt von JDialog. Ich hatte es schon versucht, dass ich mit
Java:
setLocationRelativeTo(fenster)
das Objekt meines Hauptfensters mitgebe, aber es hat sich dennoch immer nur zentriert zum Bildschirm ausgerichtet,
Und auch mit
Java:
setLocationRelativeTo(getParent())
ging es nicht
 
Zuletzt bearbeitet:
Ist das Fenster zu dem Zeitpunkt den sichtbar?
Sicher, dass Du in fenster die Referenz auf das richtige Objekt hast?
Das der Dialog zentriert auf dem Bildschirm erscheint, spricht eher, dass die Variable fenster eine Nullreferenz enthält.
 
Ja das Fenster ist immer sichtbar.
Ich habe fenster folgendermaßen definiert
Java:
Hauptfenster fenster = new Hauptfenster("titel");
Diese Variable habe ich in einer anderen Klasse erstellt und übergebe diese an das zu öffnende Fenster. Liegt darin vielleicht der Fehler?
 
Zuletzt bearbeitet:
Wo du es erstellst und wie du es übergibst, sollte egal sein. Du wirst das Problem im Code eingrenzen müssen. Am besten erstellst du ein minimales Beispiel, an dem es nachvollziehbar ist. Dies hier funktioniert:
Java:
import javax.swing.*;

public class Main {
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				final JFrame f = new JFrame();
				f.setSize(500, 500);
				f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				f.setVisible(true);
				final JDialog d = new JDialog(f);
				d.setSize(200, 200);
				d.setLocationRelativeTo(f);
				d.setVisible(true);
			}
		});
	}
}
 
Danke für die Hilfe, es funktioniert jetzt und ich habe auch meinen Fehler gefunden.
Ich habe das fensterobjekt übergeben während ich es überhaupt erst erstellt hatte, naja das wird mir jedenfalls nicht mehr passieren
 

Zurück
Oben