Java Look and Feel (L&F) [ditutup]

163

Saya sedang mengembangkan aplikasi desktop dengan Java Swing untuk penggunaan pribadi saya. Saya membutuhkan Tampilan dan Perasaan yang indah untuk aplikasi saya. Bagaimana saya bisa melakukannya menggunakan Java atau API pihak ke-3?

rajesh
sumber
1
Nimrod look-n-feel LGPL oleh Nilo J. González: personales.ya.com/nimrod/faq-en.html . Agak sedikit buggy (tidak dapat mengatur warna latar belakang untuk JButton - diselesaikan dengan paintComponent () menimpa menggunakan teknik BufferedImage yang tembus pandang)
ecle

Jawaban:

199

Ada banyak kemungkinan untuk LaFs:


Sumber:

Topik-topik terkait :

Colin Hebert
sumber
2
Cara cepat untuk melihat bagaimana aplikasi Anda terlihat di bawah Nimbus, mulai aplikasi dengan argumen `-Dswing.defaultlaf = javax.swing.plaf.nimbus.NimbusLookAndFeel` misalnya java -Dswing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel -jar MyApp.jar
no.
3
Untuk menggunakan tampilan dan nuansa Logam di aplikasi yang sudah ada, tambahkan -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeelparameter ke permintaan java.
maciej
Yang mana di antara mereka yang boleh di layar "Retina"? (tidak hanya pada OS X, ada laptop di Win 8 dengan layar DPI tinggi sekarang juga)
Nama Tampilan
61

Anda dapat mencoba L&F yang sedang saya kembangkan - WebLaF
Ini menggabungkan tiga bagian yang diperlukan untuk pengembangan UI yang sukses:

  • L&F yang dapat ditata ulang dengan platform silang untuk aplikasi Swing
  • Set komponen Swing yang diperluas
  • Berbagai utilitas dan manajer

Binari: https://github.com/mgarin/weblaf/releases
Sumber: https://github.com/mgarin/weblaf
Lisensi: GPLv3 dan Komersial

Beberapa contoh yang menunjukkan bagaimana beberapa komponen WebLaF terlihat seperti: Beberapa komponen WebLaF

Alasan utama mengapa saya mulai dengan L&F yang benar-benar baru adalah karena sebagian besar L&F yang ada kurang fleksibel - Anda tidak dapat mengubah gaya mereka dalam kebanyakan kasus (Anda hanya dapat mengubah beberapa warna dan menghidupkan / mematikan beberapa elemen UI dalam kasus terbaik) dan / atau hanya ada cara yang tidak nyaman untuk melakukan itu. Lebih buruk lagi jika menyangkut penataan komponen khusus / pihak ketiga - tidak terlihat serupa dengan komponen lain yang ditata oleh beberapa L&F tertentu atau bahkan sama sekali berbeda - yang membuat aplikasi Anda terlihat tidak profesional dan tidak menyenangkan.

Tujuan saya adalah untuk menyediakan L&F yang sepenuhnya dapat disesuaikan dengan paket komponen tambahan yang dikenal luas dan bermanfaat (misalnya: pemilih tanggal, tabel pohon, panel dok dan dok yang dapat ditumpuk dan banyak lainnya) dan manajer dan utilitas tambahan yang bermanfaat, yang akan mengurangi jumlah kode yang diperlukan untuk mengintegrasikan WebLaF dengan cepat ke dalam aplikasi Anda dan membantu menciptakan UI yang hebat menggunakan Swing.

Mikle Garin
sumber
Perhatikan bahwa sebelum masuk tanpa melihat lisensi bahwa lisensi tersebut adalah gpl. Ini mungkin atau mungkin tidak menjadi masalah bagi sebagian orang.
Tinus Tate
Saya pikir menghabiskan beberapa ratus euro untuk lisensi komersial jauh lebih baik daripada memberikan uang itu kepada pengacara Anda untuk sarannya, yang kemungkinan akan menjadi "beli lisensi komersial jika Anda menggunakan produk". Selain itu, situs mereka mengatakan Anda mendapatkan dukungan teknis yang diprioritaskan ketika Anda membeli lisensi komersial.
Jeff Holt
4

Anda juga dapat menggunakan JTattoo ( http://www.jtattoo.net/ ), ia memiliki beberapa tema keren yang dapat digunakan.

Cukup unduh toples dan impor ke classpath Anda, atau tambahkan sebagai ketergantungan pakar:

<dependency>
        <groupId>com.jtattoo</groupId>
        <artifactId>JTattoo</artifactId>
        <version>1.6.11</version>
</dependency>

Berikut adalah daftar beberapa tema keren yang mereka miliki:

  • 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

Salam

diegeelvis_SA
sumber
1

Inilah kode yang menciptakan Dialog yang memungkinkan pengguna aplikasi Anda untuk mengubah Tampilan dan Rasa berdasarkan sistem pengguna . Atau, jika Anda dapat menyimpan Look And Feel yang diinginkan pada aplikasi Anda, maka mereka bisa menjadi "portabel", yang merupakan hasil yang diinginkan.

   public void changeLookAndFeel() {

        List<String> lookAndFeelsDisplay = new ArrayList<>();
        List<String> 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);
                    }
                }
            }
        }
    }
TheArchon
sumber