Java Look and Feel (L & F)

Sto sviluppando un’applicazione desktop con Java Swing per mio uso personale. Ho bisogno di un bell’aspetto per la mia applicazione. Come posso farlo utilizzando Java o un’API di terze parti?

Ci sono molte possibilità per LaFs:

  • Il nativo per il tuo sistema
  • Il nimbus LaF
  • Web LaF
  • Il progetto sostanza (biforcuta nel progetto Insubstantial )
  • Napkin LaF
  • Synthetica
  • Quaqua (sembra acqua di MacOS X)
  • Seaglass
  • JGoodies
  • Liquidlnf
  • The Alloy Look and Feel
  • PgsLookAndFeel
  • JTatoo
  • Aspetto e aspetto di Jide
  • eccetera.

Risorse:

  • I migliori temi di Look and Feel di Java Swing | Top 10 (mancano molte delle anteprime in questa pagina)
  • oracle.com – Modifica del look and feel
  • wikipedia.org – Aspetto e aspetto collegabili
  • Java2s.com – Guarda e senti

Argomenti correlati :

  • Gui Java guardano e sentono cambiamenti
  • Open source laf [look n feel] per l’applicazione java swing

Puoi provare L & F che sto sviluppando – WebLaF
Combina tre parti richieste per lo sviluppo dell’interfaccia utente di successo:

  • L & F ri-stazionaria multipiattaforma per applicazioni Swing
  • Ampia serie di componenti Swing estesi
  • Varie utility e manager

Binari: https://github.com/mgarin/weblaf/releases
Fonte: https://github.com/mgarin/weblaf
Licenze: GPLv3 e Commerciale

Alcuni esempi che mostrano l’aspetto di alcuni componenti WebLaF: Alcuni dei componenti WebLaF

La ragione principale per cui ho iniziato con un L & F totalmente nuovo è che la maggior parte degli L & F esistenti non ha flessibilità: non è ansible ridisegnarli nella maggior parte dei casi (puoi solo cambiare alcuni colors e triggersre / distriggersre alcuni elementi dell’interfaccia utente nella migliore delle ipotesi) e / o ci sono solo modi scomodi per farlo. È ancora peggio quando si tratta di uno stile personalizzato / di componenti di terze parti – non assomigliano agli altri componenti disegnati da specifiche L & F o addirittura totalmente diversi – ciò rende l’applicazione poco professionale e sgradevole.

Il mio objective è quello di fornire un L & F completamente personalizzabile con un pacchetto di componenti aggiuntivi ampiamente conosciuti e utili (ad esempio: selettore di date, tabella ad albero, pannelli agganciabili e documenti e molto altro) e altri utili gestori e utilità, che ridurranno il quantità di codice richiesta per integrare rapidamente WebLaF nella tua applicazione e aiutare a creare interfacce utente fantastiche usando Swing.

Puoi trovare molti temi di Synthetica qui .

Qui è anche una grande risorsa con un elenco di look e feel gratuiti, personalizzabili, commerciali e fuori produzione: http://www.javootoo.com/

Puoi anche usare JTattoo ( http://www.jtattoo.net/ ), ha un paio di fantastici temi che possono essere utilizzati.

Basta scaricare il barattolo e importarlo nel classpath, o aggiungerlo come dipendenza Maven:

  com.jtattoo JTattoo 1.6.11  

Ecco una lista di alcuni dei fantastici temi che hanno a disposizione:

  • com.jtattoo.plaf.acryl.AcrylLookAndFeel
  • com.jtattoo.plaf.aero.AeroLookAndFeel
  • com.jtattoo.plaf.aluminium.AluminiumLookAndFeel
  • com.jtattoo.plaf.bernstein.BernsteinLookAndFeel
  • com.jtattoo.plaf.fast.FastLookAndFeel
  • com.jtattoo.plaf.graphite.GraphiteLookAndFeel
  • com.jtattoo.plaf.hifi.HiFiLookAndFeel
  • com.jtattoo.plaf.luna.LunaLookAndFeel
  • com.jtattoo.plaf.mcwin.McWinLookAndFeel
  • com.jtattoo.plaf.mint.MintLookAndFeel
  • com.jtattoo.plaf.noire.NoireLookAndFeel
  • com.jtattoo.plaf.smart.SmartLookAndFeel
  • com.jtattoo.plaf.texture.TextureLookAndFeel
  • com.jtattoo.plaf.custom.flx.FLXLookAndFeel

Saluti

+1 per Synthetica , l’ho usato in combinazione con Jide negli ultimi due anni e sono stato molto felice con l’interfaccia utente: ( Schermate della nostra interfaccia utente per avere un’idea di come funziona in pratica se si usano entrambi insieme. )

Ecco il codice che crea una finestra di dialogo che consente all’utente della tua applicazione di modificare il look and feel in base ai sistemi dell’utente . In alternativa, se è ansible memorizzare i Look and Feel desiderati sulla propria applicazione, allora potrebbero essere “portatili”, che è il risultato desiderato.

  public void changeLookAndFeel() { List lookAndFeelsDisplay = new ArrayList<>(); List lookAndFeelsRealNames = new ArrayList<>(); for (LookAndFeelInfo each : UIManager.getInstalledLookAndFeels()) { lookAndFeelsDisplay.add(each.getName()); lookAndFeelsRealNames.add(each.getClassName()); } String changeLook = (String) JOptionPane.showInputDialog(this, "Choose Look and Feel Here:", "Select Look and Feel", JOptionPane.QUESTION_MESSAGE, null, lookAndFeelsDisplay.toArray(), null); if (changeLook != null) { for (int i = 0; i < lookAndFeelsDisplay.size(); i++) { if (changeLook.equals(lookAndFeelsDisplay.get(i))) { try { UIManager.setLookAndFeel(lookAndFeelsRealNames.get(i)); break; } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { err.println(ex); ex.printStackTrace(System.err); } } } } }