回答:
LaFには多くの可能性があります。
java -Dswing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel -jar MyApp.jar
-Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel
、Java呼び出しにパラメーターを追加します。
私が開発しているL&Fを試すことができます-WebLaF
これは、UI開発を成功させるために必要な3つの部分を組み合わせています。
バイナリ: https : //github.com/mgarin/weblaf/releases
ソース: https : //github.com/mgarin/weblaf
ライセンス: GPLv3および商用
WebLaFコンポーネントの一部がどのように見えるかを示すいくつかの例:
まったく新しいL&Fから始めた主な理由は、既存のL&Fのほとんどに柔軟性がないためです。ほとんどの場合、スタイルを変更することはできません(いくつかの色を変更して、一部のUI要素をオン/オフにすることしかできません)。 /またはそれを行うには不便な方法しかありません。カスタム/サードパーティコンポーネントのスタイリングに関しては、さらに悪いことに、特定のL&Fでスタイル設定された他のコンポーネントとは似ていないか、まったく異なるように見えます。そのため、アプリケーションが専門的でなく、不快に見えます。
私の目標は、完全にカスタマイズ可能なL&Fに、広く知られている便利な追加コンポーネント(日付チューザー、ツリーテーブル、ドッキング可能およびドキュメントペインなど)と、役立つマネージャーとユーティリティを追加することです。 WebLaFをアプリケーションにすばやく統合し、Swingを使用して素晴らしいUIを作成するために必要なコードの量。
JTattoo(http://www.jtattoo.net/)を使用することもできます。JTattoo には、使用できるクールなテーマがいくつかあります。
jarをダウンロードしてクラスパスにインポートするか、maven依存関係として追加します。
<dependency>
<groupId>com.jtattoo</groupId>
<artifactId>JTattoo</artifactId>
<version>1.6.11</version>
</dependency>
彼らが利用できるクールなテーマのいくつかのリストはここにあります:
よろしく
アプリケーションのユーザーがユーザーのシステムに基づいてルックアンドフィールを変更できるようにするダイアログを作成するコードを次に示します。あるいは、必要なルックアンドフィールをアプリケーションに格納できる場合は、それらを「移植可能」にすることができます。これが望ましい結果です。
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);
}
}
}
}
}