LookAndFeel Eigenes Design für die Applikation

Lilianne

Neues Mitglied
Ich habe eine Frage und eine Idee zu deren beantwortung.

Meine Frage: Wie kann ich meiner Applikation ein ganz eigenes Design geben ? Die Buttons kann man ja relativ leicht zu einem Bild machen, die Hintergrundfarbe kann man sicher auch ziemlich leicht verändern aber wie sieht es mit dem Rahmen dem JFrame aus ? Wie ändert man das Komplette aussehen des JFrames bzw eines Frames ?

Meine Lösungsidee:

Ich ändere den JFrame garnicht sondern mache ein JPanel in den JFrame welches ich eine Hintergrundgrafik gebe (die eines eigenen Frames mit Buttons ect.).
Den Buttons gebe ich eben die Funktionalität schliessen, vergrößern ect..
Nun würde ich die setVisible() Methode von JFrame auf false setzen.

Was passiert dann ? Wird nur der Frame unsichtbar oder alles was er enthält ?
Ist der Frame nur unsichtbar oder könnte man ihn über den gesammten Bildschirm maximieren ohne oben einen unsichtbaren Rand zu haben ?

Danke für eure Antworten und Anregungen =)
 
mit setVisible(false) siehst du nix. was du wahrscheinlich suchst (und was auch funktioniert wie du es dir gedacht hast) ist frame.setUndecorated(true)
über den ganzen bildschirm maximiert bekommst du es mit diesem aufruf + frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
 
Das was du suchst sind spezielle Look And Feels. Java bietet auch ein paar, abr das einzige wirklih brauchbare ist das Nimbusdesign. Hier ist eine Bibleothek die über Look And Feels auch den JFrame verändert: http://www.jtattoo.net/
Diese Bibleothek hat zwei Bugs(die ich bis jetzt gefunden habe).
  1. Wenn du einem JFrame eine minimale Größe gibts und du versuchst den JFrame mit der Maus noch kleiner zu ziehen, dann bewegt er sich.
  2. Wenn man über den UIManager einen der Look And Feels ändert bevor der Kontruktor des JFrames aufgerufen wurde und es mit folgendem Code in den Vollbildmodus setzt, dann ist der Rand(obwohl er abgeschaltet wurde) immer noch da.
Java:
GraphicsEnvironment environment = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice monitor = environment.getDefaultScreenDevice();
Toolkit toolkit = Toolkit.gtDefaultToolkit();
int width = toolkit.getScreenSize().width;
int height = toolkit.getSreenSize().height;
DisplayMode resolution = new DisplayMode(width, height, 32, 60);
monitor.setFullscreenWindow(myframe);
monitor.setDisplayMode(resolution);

Hier ist dann nochmal der Code um ein Look and Feel zu initialisieren:
Java:
try {

    UIManager.setLookAndFeel(new LookAndFeelKlasse());

} catch(UnsupportedLookAndFeelException exception) {

    exception.printStackTrace();
    System.exit(1);
}

Wenn deine Komponenten allerdings schon initialisiert sind bevor du den obrigen Code verwendest musst du noch ein
Java:
SwingUtilities.updateComponentTreeUI(myframe);
darunter setzen, ansonsten siehst du nichts.
Hier ist auch nochmal eine Liste aller LookAndFeel Klassen die unterstützt werden wenn du JTattoo verwendest:
  • NimbusLookAndFeel(Zusätzliches Java Standarddesign)
  • MetalLookAndFeel(Standarddesign)
  • AcrylLookAndFeel
  • AeroLookAndFeel
  • AluminiumLookAndFeel
  • BernsteinLookAndFeel
  • FastLookAndFeel
  • GraphiteLookAndFeel
  • HiFiLookAnFeel
  • LunaLookAndFeel
  • McWinLookAndFeel
  • MintLookAndFeel
  • NoireLookAndFeel
  • SmartLookAndFeel
  • TextureLookAndFeel

Ich hoffe ich konnte dir helfen. 😀
 

Zurück
Oben