Java Look and Feel (L&F) [закрито]


163

Я розробляю настільний додаток з Java Swing для мого особистого використання. Мені потрібні прекрасні Look and Feel для мого застосування. Як я можу це зробити за допомогою Java або стороннього API?


1
LGPL'ed look-n-feel Nimrod від Nilo J. González: personales.ya.com/nimrod/faq-en.html . Трохи баггі (не в змозі встановити колір тла для JButton - вирішено за допомогою перегляду за допомогою paintComponent () за допомогою напівпрозорої техніки BufferedImage)
ecle

Відповіді:


199

2
Швидкий спосіб побачити , як виглядає додаток під Nimbus, запустіть додаток з аргументом `-Dswing.defaultlaf = javax.swing.plaf.nimbus.NimbusLookAndFeel` наприклад java -Dswing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel -jar MyApp.jar
NOS

3
Щоб використовувати металевий зовнішній вигляд у існуючих додатках, додайте -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeelпараметр до виклику Java.
maciej

Які з них добре на дисплеях "Retina"? (не тільки в OS X, зараз є ноутбуки на Win 8 із високими екранами DPI)
Відображати ім'я

61

Ви можете спробувати L&F, який я розробляю - WebLaF
Він поєднує три частини, необхідні для успішної розробки інтерфейсу:

  • Повторне стилізація L&F для різних платформ для додатків Swing
  • Великий набір розширених компонентів Swing
  • Різні комунальні послуги та менеджери

Бінарні файли: https://github.com/mgarin/weblaf/releases
Джерело: https://github.com/mgarin/weblaf
Ліцензії: GPLv3 та Commercial

Кілька прикладів, що показують, як виглядають деякі компоненти WebLaF: Деякі компоненти WebLaF

Основна причина, чому я почав із абсолютно нового L&F, полягає в тому, що у більшості існуючих L&F не вистачає гнучкості - ви не можете змінити їх стиль у більшості випадків (ви можете змінити лише декілька кольорів та включити / вимкнути деякі елементи інтерфейсу в кращому випадку) та / або є лише незручні способи зробити це. Це ще гірше, якщо мова йде про індивідуальні / сторонні стилі компоненти - вони не схожі на інші компоненти, стильовані певним L&F або навіть зовсім іншими - що робить вашу програму непрофесійною та неприємною.

Моя мета - забезпечити повністю настроюваний L&F з пакетом додаткових широко відомих і корисних компонентів (наприклад: вибір дату, таблиця дерев, панелі документування та документи та багато інших) та додаткові корисні менеджери та утиліти, що зменшить кількість коду, необхідного для швидкої інтеграції WebLaF у вашу програму та допомоги у створенні дивовижних інтерфейсів за допомогою Swing.


Зауважте, що перед тим, як зайти, не дивлячись на ліцензію, що ліцензія є gpl. Для деяких це може бути або не бути проблемою.
Тінус Тейт

Я думаю, що витратити кілька сотень євро на комерційну ліцензію - це набагато краще, ніж віддавати гроші своєму адвокату за його поради, які, ймовірно, будуть "купувати комерційну ліцензію, якщо ви використовуєте продукт". Крім того, на їхньому сайті зазначено, що ви отримуєте пріоритетну технічну підтримку, купуючи комерційну ліцензію.
Джефф Холт

4

Ви також можете використовувати JTattoo ( http://www.jtattoo.net/ ), у ньому є кілька класних тем, які можна використовувати.

Просто скачайте банку та імпортуйте її на свій класний шлях або додайте її як залежність від Maven:

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

Ось список цікавих тем, які вони мають у своєму розпорядженні:

  • 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

З повагою


1

Heres код , який створює діалог , який дозволяє користувачеві додатки , щоб змінити зовнішній вигляд і стиль , заснований на користувальницьких системах. Крім того, якщо ви можете зберігати шуканий Look And Feel's у вашій заявці, вони можуть бути "портативними", що є бажаним результатом.

   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);
                    }
                }
            }
        }
    }
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.