JDialog ohne IconImage

Das glaube ich zwar eher nicht da dieses Flag es lediglich unmöglich macht die Größe zu ändern ... aber ok ... das Beispiel möchte ich dann doch mal bitte sehen.
 
Das funktioniert aber nur unter Windows und vielleicht auch nur bei deiner Version. Unter Linux dürfte das je nach Desktop Envrionment völlig verschieden sein. Unter Gnome3 gibt es beispielsweise keine Icons in der Titelleiste und der Programmtitel ist zentriert (Standard-Theme).
 
Hier ein ganz simples Beispiel:

Java:
package sonstiges;

import java.awt.Dimension;

import javax.swing.JDialog;

@SuppressWarnings("serial")
public class AboutDialog extends JDialog
{
    public AboutDialog()
    {
        super();
        
        setPreferredSize(new Dimension(50,50));
        
        setResizable(true);
        
        setVisible( true );
    }
    
    public static void main( String[] args )
    {
        new AboutDialog();
    }
}

setResizable(true): Default Icon ist da
setResizable(false): Default Icon ist nicht da

@genodeftest
Ich habe leider keine Möglichkeit es unter MAC oder Linux zu testen. Aber vielleicht kann das ja wer machen?
 
Gerne, ich könnte es unter Gnome3/Linux testen. Du solltest aber nicht vergessen, dass manche Theme-Engines des Fenstermanagers keine Transparenzen akzeptieren und dass mit jedem Theme dein Fenster anders aussehen kann!
 
Also ich hab mal das Beispiel ausprobiert ... und ich musste leider feststellen das du recht hast : das Icon wird druch setResizable(false) entfernt. Darauf hin hab ich den Bug-Tracker durchstöbert und eine beunruhigende Endeckung gemacht : das ist scheinbar so gewollt , denn alle Bug-Meldungen die darum gingen das dieses Icon eben doch angezeigt wird *wie es die Logik nun mal eigentlich bestätigt* wurden als BUG akzeptiert und gefixt. Scheinbar war es so von Sun geplant ... aber WARUM ? Nur weil ich einem JDialog die Fähigkeit der Größenänderung nehme heißt das nicht das er zu einem Stück etwas degradiert wird. Es ist immer noch ein eigenständiges Window ... und sollte als solches eigentlich behandelt werden.
Da aber leider wie gesagt diese Verhalten so gewollt ist ... ist es sinnlos jetzt über die Sinnhaftigkeit dessen zu diskutieren ... und auch eine Bug-Meldung das dies irgendwie gegen jede Logik geht , es nicht in der Doc auf taucht ... und auch sonst nirgends steht WARUM das so gewollt ist ... wäre reine verschwendung.
 
Was ich an der Sache ein wenig unlogisch finde:
Da es scheinbar die Möglichkeit gibt das Icon auszuschalten(wird ja durch resize=false gemacht), warum bietet man dann nicht eine eigene Methode dafür an?

Naja...ich aktzeptiere es mal so und hoffe dass es in Zukunft vielleicht funktionieren wird:)
 
Das ist eine gute Frage die man eigentlich dem stellen sollte der diese grandiose Idee hatte das nur im JDialog zu machen und da auch so einen dreckigen "Hack" zu verwenden es mit dem resizable-Flag zu verbinden ... wiel an sich ist das totaler Schwachsinn und es wäre deutlich besser gewesen wenn man wie du gesagt hast eine eigene Methode dafür bereitgestellt hätte ... allerdings nicht erst so weit oben beim JDialog sondern ganz teif beim java.awt.Window oder sonst wo da unten ...
 
btw: unter der Gnome Shell (Gnome 3.2 Beta auf Ubuntu 11.04) sieht es so aus:
attachment.php

Wobei auch alle anderen Anwendungen kein Symbol in der Fensterleiste haben, nur oben neben "Aktivitäten" und im Übersichtsmodus der Gnome-Shell sowie bei Alt-Tab.
 

Anhänge

  • Bildschirmfoto-Java-Dialog.png
    Bildschirmfoto-Java-Dialog.png
    17,1 KB · Aufrufe: 13
Zurück