Java Görünüm ve Hissi (L&F) [kapalı]


163

Kişisel kullanımım için Java Swing ile bir masaüstü uygulaması geliştiriyorum. Uygulamam için bazı güzel Görünüm ve Hisseye ihtiyacım var. Java veya 3. taraf API kullanarak nasıl yapabilirim?


1
NiPL J. González tarafından LGPL'ed look-n-feel Nimrod: personales.ya.com/nimrod/faq-en.html . Biraz buggy (bir JButton için arka plan rengi ayarlanamıyor - paintComponent () ile yarı saydam BufferedImage tekniği kullanılarak geçersiz
kılındı

Yanıtlar:


199

2
Uygulamanızın Nimbus altında nasıl göründüğünü görmenin hızlı yolu, uygulamayı `-Dswing.defaultlaf = javax.swing.plaf.nimbus.NimbusLookAndFeel` argümanı ile başlatın örn. java -Dswing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel -jar MyApp.jar
nos

3
Mevcut uygulamalarda Metal görünümünü ve hissini kullanmak -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeeliçin java çağrısına parametre ekleyin .
maciej

Bunlardan hangisi "Retina" ekranlarında uygundur? (yalnızca OS X'te değil, Win 8'de şimdi de yüksek DPI ekranlı dizüstü bilgisayarlar var)
Görünen Ad

61

Geliştirdiğim L & F'yi deneyebilirsiniz - WebLaF
Başarılı kullanıcı arayüzü geliştirme için gerekli üç parçayı birleştirir:

  • Swing uygulamaları için platformlar arası yeniden stilize edilebilir L&F
  • Geniş Genişletilmiş Salıncak Bileşenleri
  • Çeşitli yardımcı programlar ve yöneticiler

İkili dosyalar: https://github.com/mgarin/weblaf/releases
Kaynak: https://github.com/mgarin/weblaf
Lisanslar: GPLv3 ve Ticari

Bazı WebLaF bileşenlerinin nasıl göründüğünü gösteren birkaç örnek: Bazı WebLaF bileşenleri

Tamamen yeni bir L & F ile başlamamın temel nedeni, mevcut L & F'nin çoğunun esnekliği olmamasıdır - çoğu durumda bunları yeniden stil uygulayamazsınız (sadece birkaç rengi değiştirebilir ve en iyi durumda bazı UI öğelerini açıp kapatabilirsiniz) ve / veya bunu yapmanın sadece sakıncalı yolları vardır. Özel / 3. taraf bileşen stilleri söz konusu olduğunda daha da kötüsü - bazı belirli L & F tarafından stilize edilen veya hatta tamamen farklı olan diğer bileşenlere benzemez - bu da uygulamanızın profesyonel olmayan ve hoş olmayan görünmesini sağlar.

Amacım, yaygın olarak bilinen ve kullanışlı ek bileşenler (örneğin: tarih seçici, ağaç tablosu, yerleştirilebilir ve belge bölmeleri ve diğer pek çok) ile tamamen özelleştirilebilir bir L&F ve WebLaF'ı hızlı bir şekilde uygulamanıza entegre etmek ve Swing'i kullanarak harika UI'ler oluşturmanıza yardımcı olmak için gereken kod miktarı.


Lisansa bakmadan atlamadan önce lisansın gpl olduğunu unutmayın. Bu bazıları için bir sorun olabilir veya olmayabilir.
Tinus Tate

Ticari lisans için birkaç yüz euro harcamanın bu parayı avukatınıza tavsiyesi için vermekten çok daha iyi olduğunu düşünüyorum, bu da muhtemelen "ürünü kullanırsanız ticari lisans satın alın" şeklinde olacaktır. Ayrıca, siteleri ticari lisans satın aldığınızda öncelikli teknik destek aldığınızı söylüyor.
Jeff Holt

4

Ayrıca JTattoo ( http://www.jtattoo.net/ ) kullanabilirsiniz , kullanılabilecek birkaç harika tema var.

Kavanozu indirin ve sınıf yolunuza alın veya maven bağımlılığı olarak ekleyin:

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

İşte mevcut harika temaların bir listesi:

  • 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

Saygılarımızla


1

Uygulamanızın kullanıcısının Görünüm ve Hisseyi kullanıcının sistemlerine göre değiştirmesine olanak tanıyan bir İletişim Kutusu oluşturan kodu içerir . Alternatif olarak, aranan Görünüm ve Hissi uygulamanızda saklayabilirseniz, "taşınabilir" olabilirler, bu da istenen sonuçtur.

   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);
                    }
                }
            }
        }
    }
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.