![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Benutzer
Registriert seit: 05.12.2005
Beiträge: 62
|
Hallo,
ich hab ein klitzekleines Problem mit einem aufpoppenden Dialog. Und zwar habe ich folgenden Dialog, in dem man etliche Einstellungen machen kann. Unter anderem kann man bei dem Dropdown "Weighting" das "Stanford EWEIGHT Weighting" auswählen, woraufhin sich der "Configure..." Button darunter enabled, da dafür ein weiterer Parameter (eine Datei) gesetzt werden muss. Der große Dialog "Score View settings" poppt über einem JDesktopPane auf (nur zur Info). ![]() Klicke ich nun zum ersten mal auf den "Configure..." Button, öffnet sich ein weiterer Dialog ("Select stanford file"), in dem man die Datei definieren kann. Der ist (beim ersten Mal) aber nicht relativ zum "Score View settings" Dialog zentriert, sondern hängt so komisch weit rechts rum (hier sieht man rechts auch noch die Hintergrundfarbe des JDesktopPane ![]() Breche ich den "Stanford file" Dialog durch Cancel ab oder wähle eine Datei aus und klicke auf OK (führe also generell ein dispose() aus) und klicke danach wieder auf den "Configure..." Button, öffnet sich der Dialog wieder, aber diesmal eben zentriert, genauso wie ich das haben will... ![]() Der actionPerformedCode für den "Configure..." Button ist hier: Code:
else if(e.getActionCommand().equals("configureWeighting")) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
WeightingStrategy2 w =
(WeightingStrategy2)SettingsPanel.this.cpWeighting.getSelectedItem();
JDialog dialog = w.getConfigurationDialog();
//Position berechnen, damit der ConfigurationDialog zentriert über
//dem SettingsDialog liegt
int x = SettingsDialog.getInstance().getLocation().x;
int y = SettingsDialog.getInstance().getLocation().y;
x += SettingsDialog.getInstance().getWidth()/2 - dialog.getWidth()/2;
y += SettingsDialog.getInstance().getHeight()/2 - dialog.getHeight()/2;
dialog.pack();
dialog.setLocation(x, y);
dialog.show();
}
});
}
SettingsPanel ist quasi der ContentPane des SettingsDialog w.getConfigurationDialog() liefert mir den kleinen Dialog ("Select Stanford file") Das Berechnen der Position des ConfigurationDialogs scheint ja zu funktionieren, da das "Misplacement" ja nur beim ersten Aufruf des ConfigurationDialogs stattfindet... Irgendwie seh ich net, was ich da falsch mache. Hat vielleicht jemand von euch einen Schimmer von einer blassen Ahnung? THX in advance sayang PS: ob es hier notwendig ist, dass ich SwingUtilities#invokeLater(Runnable) benutze, weiss ich nicht, da ich noch nicht richtig ausgecheckt habe, wann/wie/warum... jedenfalls ändert es nichts an dem Problem, wenn ich es weglasse |
|
|
|
|
|
Nach oben #2 |
|
Erfahrener Benutzer
Registriert seit: 23.11.2005
Ort: Stadtallendorf
Beiträge: 139
|
Die Reihenfolge ist wichtig.
Erste musst du die Größe des Dialoges festlegen und dann positionieren. java Code:
__________________
Die Menschen wünschen sich Unsterblichkeit, aber wissen nichts anzufangen an einem verregneten Sonntag Nachmittag. |
|
|
|
|
|
Nach oben #3 |
|
Benutzer
Registriert seit: 05.12.2005
Beiträge: 62
|
Vielen vielen Dank,
man lernt nie aus. Das mit setLocationRelative kannte ich z. B. noch nicht Allerdings muss ich weiter show() verwenden, da ich noch mit 1.4.2 arbeite, aber das habich ja auch net gesagt BTW: was ich auch nicht gesagt habe, ist, dass der ConfigurationDialog ebenfalls als Singleton implementiert ist. Es wird alson nur ein einziges Mal eine Instanz erzeugt. Und genau deswegen wurde er bei allen folgenden aufrufen auch korrekt zentriert (er kannte seine Größe ja quasi schon seitdem er zum ersten mal aufgerufen wurde).... tjaja... so gehts Stück für Stück weiter... vielen Dank nochmal. sayang |
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| JSplitPane positionierung :( | Sternenjaeger | Desktop-Applikationen und Grafik | 9 | 05.01.2006 20:44 |