Cum se schimba tema de proiectare în orice aplicație Java

  • Java
  • Interfața utilizator
  • leagăn

Sunt un ignoramus complet în Java, doar un utilizator. Dar vreau să o dată pentru totdeauna să înțeleagă cum să se schimbe și să personalizați teme în Java-aplicații? Și este posibil să facă acest lucru în cazul în care în activitatea Java aplicație cu temele de proiectare nu sunt disponibile?

De exemplu, eu folosesc NetBeans IDE. Este doar aspectul de editare cod zonă poate fi ajustată. Și personaliza tema de proiectare a tuturor NetBeans - culoarea de cadre, linii în copaci, fontul - este imposibil. Și eu, de exemplu, aveți nevoie pentru a schimba culoarea tuturor Java-cadru. Cum de a face acest lucru?

Singurul lucru pe care am săpat - este de a utiliza --laf Java-opțiune. De exemplu, puteți rula NetBeans cu comanda:

/ Netbeans --laf com.sun.java.swing.plaf.gtk.GTKLookAndFeel

Opțiunea --laf fi transferate java-mediu și NetBeans începe cu GTK-interfață. Dar acest lucru ridică câteva întrebări:

1. De unde știi numele interfețelor teme disponibile? Am naryl doar titlul de mai sus.

2. Cum se configurează schema de culori a subiectele selectate? Este posibil, în principiu?

De fapt, eu nu văd nici o problemă gravă în acest ...

În primul rând, voi spune că obținerea unei liste de teme existente nu are sens.
Pentru fiecare versiune specifică a JDK, ei întotdeauna și peste tot la fel.
De exemplu, pentru JDK6, atât deasupra cât și a scris deja, acestea sunt după cum urmează:


Singura excepție este Mac, în cazul în care se adaugă tema:


Toate celelalte subiecte, cum ar fi aliaj, Stubstance, Synthetica etc. adăugați le cu mâna.

În mod specific, în conformitate cu întrebarea ...
Nu cred că e culoarea care te schimba nu hotie, puteți face setări la pornire.
Toate modificările de culoare cadre, fundaluri, și așa mai departe. - toate personalizare interfață.
De exemplu, puteți uita METALWORKS app care vine cu toate JDK de la compania Oracle.
Îl puteți găsi aici: /demo/jfc/Metalworks/Metalworks.jar
Aruncati o privire la codul (în dosarul de lângă acesta) și veți vedea că toate schemele de culori sunt înregistrate manual (apeluri de metode sau citirea lor proprii de configurare)

Cea mai bună opțiune pentru tine, cred că - este de a scrie propria clasă care se extinde unul dintre acestea, de exemplu, există javax.swing.plaf.metal.MetalLookAndFeel și prescrie ce cadru de culoare aveți nevoie. Alternativ, puteți scrie clasa, astfel încât el a citit pur și simplu o serie de proprietăți care stau la baza fișierului. Acest lucru vă va da posibilitatea de a schimba cu ușurință culorile, fără recompilare clasa. Apoi, compila această clasă, pune-l doar în cazul în care JDK poate găsi (care nu ar avea dreptul de CLASSPATH permanentă) și a alerga NetBeans dvs. cu numele de clasa LAF ...
Este chiar mai ușor, pentru că nu trebuie să-și amintească în mod constant pachetele nume-Sun ...
com.example.laf.CustomTheme dvs.
anti-Soare com.sun.java.swing.plaf.motif.MotifLookAndFeel. De exemplu, ...