[java] 자바 룩앤필 (L & F) [닫기]

개인 용도로 Java Swing을 사용하여 데스크탑 응용 프로그램을 개발하고 있습니다. Java 또는 타사 API를 사용하여 어떻게 할 수 있습니까?



답변


답변

내가 개발하고있는 L & F를 시도 할 수 있습니다 -WebLaF
성공적인 UI 개발에 필요한 세 부분을 결합합니다.

  • 스윙 애플리케이션을위한 크로스 플랫폼 재구성 가능한 L & F
  • 확장 된 스윙 구성 요소의 큰 세트
  • 다양한 유틸리티 및 관리자

바이너리 : https://github.com/mgarin/weblaf/releases
출처 : https://github.com/mgarin/weblaf
라이센스 : GPLv3Commercial

일부 WebLaF 구성 요소가 어떻게 보이는지 보여주는 몇 가지 예 :
WebLaF 구성 요소 중 일부

완전히 새로운 L & F로 시작한 주된 이유는 기존 L & F의 대부분에 유연성이 없기 때문입니다. 대부분의 경우에 스타일을 다시 지정할 수 없습니다 (몇 가지 색상 만 변경하고 일부 경우 UI 요소를 켜거나 끌 수 있음). 또는 불편한 방법이 있습니다. 커스텀 써드 파티 컴포넌트 스타일링에 있어서는 더 나빠질 수 있습니다. 특정 L & F에 의해 스타일이 지정된 다른 컴포넌트와는 전혀 다르거 나 심지어 완전히 다른 것이므로 애플리케이션이 전문적이지 않고 불쾌 해 보입니다.

저의 목표는 널리 알려진 유용한 구성 요소 (예 : 날짜 선택기, 트리 테이블, 고정 가능 및 문서 창 및 기타 여러 가지)와 추가 유용한 관리자 및 유틸리티를 포함하여 완전히 사용자 정의 가능한 L & F를 제공하는 것입니다. WebLaF를 애플리케이션에 신속하게 통합하고 Swing을 사용하여 멋진 UI를 만드는 데 필요한 코드.


답변

JTattoo ( http://www.jtattoo.net/를 사용할 수도 있습니다 . )를 있는 몇 가지 멋진 테마가 있습니다.

jar 파일을 다운로드하여 클래스 경로로 가져 오거나 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

문안 인사


답변

다음은 응용 프로그램 사용자가 사용자 시스템 에 따라 모양과 느낌을 변경할 수있는 대화 상자를 만드는 코드입니다 . 또는 원하는 모양과 느낌을 응용 프로그램에 저장할 수 있으면 “이동식”이 될 수 있으며 이는 원하는 결과입니다.

   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);
                    }
                }
            }
        }
    }


답변