Standard Java Design ändern?

Seb0r

Grünschnabel
Hallo alle zusammen,

ich suche schon seit geraumer Zeit verzweifelt nach dem Grund weshalb mein GUIs(die ich mit dem GUI-Designer von Netbeans erstelle) ständig so ein hässliches Design haben?

Wie man im angehangen Bild(links) erkennen kann, sieht es so im Designer aus aber wenn ich dann das Programm ausführe sieht es wie im Bild(rechts) aus.

Daher meine Fragen: Woran liegt das und noch wichtiger: wie/wo kann ich das ändern?

lg
 

Anhänge

  • designer.PNG
    designer.PNG
    607 Bytes · Aufrufe: 542
  • running.PNG
    running.PNG
    842 Bytes · Aufrufe: 542
Hi Seb0r,

das Stichwort nach dem du suchst lautet "LookAndFeel".

Netbeans verwendet offenbar in seiner Vorschau das System-LookAndFeel und da in deinem Programm kein explizites LookAndFeel gesetzt wird, verwendet er das Standard-LookAndFeel, was bei allen (außer Mac OS) das Metal-LookAndFeel ist.

Da zu diesem Thema genug im Forum und sonstigem Internet zu finden ist, überlasse ich dich hiermit deinem Schicksal. ;)


Viele Grüße & Schönes Wochenende
Carron
 
Danke für deine schnelle Hilfe Carron,

nach einigem Herumprobierens hab ich das standard WindowsLookAndFeel laden können, bekomme nun aber merkwürdige FileNotFoundExceoptions(GroupLayout) wenn ich mein Applet gebuildet und im Browser aufrufe.

Ich werde genaueres morgen noch posten.

Edit: wie versprochen hier noch der genaue Code des Fehlers:

Java Konsole:
Code:
java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/jdesktop/layout/GroupLayout$Group
	at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Caused by: java.lang.NoClassDefFoundError: org/jdesktop/layout/GroupLayout$Group
	at java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
	at java.lang.Class.getConstructor0(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Caused by: java.lang.ClassNotFoundException: org.jdesktop.layout.GroupLayout$Group
	at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	... 14 more

Caused by: java.io.FileNotFoundException: D:\Workspace\Projects\Routenplaner\build\classes\org\jdesktop\layout\GroupLayout$Group.class (Das System kann den angegebenen Pfad nicht finden)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(Unknown Source)
	at java.io.FileInputStream.<init>(Unknown Source)
	at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source)
	at sun.net.www.protocol.file.FileURLConnection.getInputStream(Unknown Source)
	at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
	at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
	at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	... 17 more

Jemand eine Idee woher dieses ominöse GroupeLayout kommen soll?

Das einzige das ich verändert habe auf das diese Fehlermeldung kam war:

Java:
   public void init()
    {
        try {
            java.awt.EventQueue.invokeAndWait(new Runnable()
            {
                public void run()
                {
                    //LookAndFeel setzen:
                    try
                    {
                        UIManager.setLookAndFeel(new WindowsLookAndFeel());
                    }
                    catch (Exception e)
                    {
                        System.err.println("Could not load LookAndFeel");
                    }

                    initComponents();
  }
 
Zuletzt bearbeitet:
Moin,

das Einzige, was mich spontan an Deinem Code irritiert, ist die Zeile:
Java:
UIManager.setLookAndFeel(new WindowsLookAndFeel());

IMHO müsste da sowas in dieser Art stehen:
Java:
UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel" );

Im übrigen scherint irgendwas mit Deinem Klassenpfad nicht zu stimmen:
Java:
D:\Workspace\Projects\Routenplaner\build\classes\org\jdesktop\layout\GroupLayout$Group.class
Was ist das? Ist es korrekt eingetragen?

Gruß
Klaus
 
Im übrigen scherint irgendwas mit Deinem Klassenpfad nicht zu stimmen:
Java:
D:\Workspace\Projects\Routenplaner\build\classes\org\jdesktop\layout\GroupLayout$Group.class
Was ist das? Ist es korrekt eingetragen?

Gruß
Klaus

Danke für die schnelle Reaktion und ja, ich frag mich das selbe. Ich hab keine Idee weshalb er dieses GroupLayout$Group.class verlangt. Gezielt verwenden tu ich es selbst jedenfalls nicht, also ist die einzige Schlussfolgerung die mir dazu einfällt die, das er wegen dem WindowsLookAndFeel diese .class zusätzlich benötigt?
 
Moin,

ich vermute mal, dass ".../Routenplaner/..." Dein eigenes Arbeitsverzeichnis ist, oder ?

Was genau ist den "jdesktop" ?

Inwieweit ex. der fragliche Pfad denn auf Deiner Platte ?

Gruß
Klaus
 
Japp, Routenplaner ist das Projekt in dem ich arbeite und der Pfad stimmt bis: D:\Workspace\Projects\Routenplaner\build\classes\org\

Alles Danach kenne ich selbst nicht und kann es mir auch nicht so wirklich erklären.

PS: ich hab...
Java:
UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel" );
umgeschreiben, hat aber an dem Fehler auch nach dem erneuten builden nichts geändert :c
 
Japp, Routenplaner ist das Projekt in dem ich arbeite und der Pfad stimmt bis: D:\Workspace\Projects\Routenplaner\build\classes\org\

Alles Danach kenne ich selbst nicht und kann es mir auch nicht so wirklich erklären.

PS: ich hab...
Java:
UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel" );
umgeschreiben, hat aber an dem Fehler auch nach dem erneuten builden nichts geändert :c

Einfacher :)
Java:
UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName());

Der Nimbus LookAndFeel ist auch gut:)
Der kam aber erst mit irgendeinem Java-Update rein und kanm daher je nach Update nicht verfügbar sein.
"com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück