Giao diện Java (L & F) [đã đóng]


163

Tôi đang phát triển một ứng dụng máy tính để bàn với Java Swing cho mục đích sử dụng cá nhân của mình. Tôi đang cần một số Giao diện đẹp cho ứng dụng của mình. Làm cách nào tôi có thể làm điều đó bằng cách sử dụng Java hoặc API của bên thứ 3?


1
Cái nhìn của LGPL'ed Nimrod của Nilo J. González: Personales.ya.com/nimrod/faq-en.html . Một lỗi nhỏ (không thể đặt màu nền cho JButton - đã được giải quyết bằng ghi đè paintComponent () bằng cách sử dụng kỹ thuật BufferedImage mờ)
ecle 22/03/2016

Câu trả lời:


199

Có rất nhiều khả năng cho LaFs:


Tài nguyên :

Chủ đề liên quan:


2
Cách nhanh chóng để xem làm thế nào ứng dụng vẻ bề ngoài của bạn dưới Nimbus, bắt đầu ứng dụng với lập luận '-Dswing.defaultlaf = javax.swing.plaf.nimbus.NimbusLookAndFeel` ví dụ java -Dswing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel -jar MyApp.jar
nos

3
Để sử dụng Giao diện kim loại trong các ứng dụng hiện có, hãy thêm -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeeltham số vào lệnh gọi java.
maciej

Cái nào trong số chúng ổn trên màn hình "Retina"? (không chỉ trên OS X, hiện tại cũng có máy tính xách tay trên Win 8 với màn hình DPI cao)
Tên hiển thị

61

Bạn có thể thử L & F mà tôi đang phát triển - WebLaF
Nó kết hợp ba phần cần thiết để phát triển UI thành công:

  • L & F tái tạo đa nền tảng cho các ứng dụng Swing
  • Bộ lớn các thành phần xoay mở rộng
  • Nhiều tiện ích và người quản lý

Binaries: https://github.com/mgarin/weblaf/release
Nguồn: https://github.com/mgarin/weblaf
Giấy phép: GPLv3thương mại

Một vài ví dụ cho thấy một số thành phần WebLaF trông như thế nào: Một số thành phần WebLaF

Lý do chính khiến tôi bắt đầu với một L & F hoàn toàn mới là vì hầu hết các L & F hiện tại thiếu tính linh hoạt - bạn không thể tạo kiểu lại cho chúng trong hầu hết các trường hợp (bạn chỉ có thể thay đổi một vài màu và bật / tắt một số thành phần UI trong trường hợp tốt nhất) và / hoặc chỉ có những cách bất tiện để làm điều đó. Thậm chí còn tệ hơn khi nói đến kiểu dáng các thành phần tùy chỉnh / bên thứ 3 - chúng trông không giống với các thành phần khác được tạo kiểu bởi một số L & F cụ thể hoặc thậm chí hoàn toàn khác biệt - khiến ứng dụng của bạn trông không chuyên nghiệp và khó chịu.

Mục tiêu của tôi là cung cấp một L & F có thể tùy chỉnh hoàn toàn với một gói các thành phần hữu ích và được biết đến rộng rãi (ví dụ: trình chọn ngày, bảng cây, bảng có thể gắn và nhiều tài liệu khác) và các trình quản lý và tiện ích bổ sung khác, sẽ làm giảm số lượng mã cần thiết để nhanh chóng tích hợp WebLaF vào ứng dụng của bạn và giúp tạo UI tuyệt vời bằng cách sử dụng Swing.


Lưu ý rằng trước khi nhảy vào mà không nhìn vào giấy phép mà giấy phép là gpl. Điều này có thể hoặc không thể là một vấn đề đối với một số người.
Tinus Tate

Tôi nghĩ rằng chi vài trăm euro cho một giấy phép thương mại tốt hơn nhiều so với việc đưa số tiền đó cho luật sư của bạn để xin lời khuyên, rất có thể sẽ là "mua giấy phép thương mại nếu bạn sử dụng sản phẩm". Bên cạnh đó, trang web của họ nói rằng bạn được ưu tiên hỗ trợ kỹ thuật khi bạn mua giấy phép thương mại.
Jeff Holt

4

Bạn cũng có thể sử dụng JTemme ( http://www.jtemme.net/ ), nó có một vài chủ đề thú vị có thể được sử dụng.

Chỉ cần tải về jar và nhập nó vào đường dẫn lớp của bạn hoặc thêm nó dưới dạng phụ thuộc maven:

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

Dưới đây là danh sách một số chủ đề thú vị mà họ có sẵn:

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

Trân trọng


1

Đây là mã tạo ra Hộp thoại cho phép người dùng ứng dụng của bạn thay đổi Giao diện dựa trên hệ thống của người dùng . Ngoài ra, nếu bạn có thể lưu trữ Giao diện mong muốn trên ứng dụng của mình, thì chúng có thể là "di động", đó là kết quả mong muốn.

   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);
                    }
                }
            }
        }
    }
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.