ฉันกำลังพัฒนาแอพพลิเคชั่นบนเดสก์ท็อปด้วย Java Swing สำหรับการใช้งานส่วนตัวของฉันฉันต้องการรูปลักษณ์ที่สวยงามสำหรับแอพพลิเคชั่นของฉัน ฉันจะใช้ Java หรือ API ของบุคคลที่สามได้อย่างไร
ฉันกำลังพัฒนาแอพพลิเคชั่นบนเดสก์ท็อปด้วย Java Swing สำหรับการใช้งานส่วนตัวของฉันฉันต้องการรูปลักษณ์ที่สวยงามสำหรับแอพพลิเคชั่นของฉัน ฉันจะใช้ Java หรือ API ของบุคคลที่สามได้อย่างไร
คำตอบ:
มีความเป็นไปได้มากมายสำหรับ LaFs:
java -Dswing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel -jar MyApp.jar
-Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel
พารามิเตอร์ลงในการเรียกใช้จาวา
คุณสามารถลอง L&F ที่ฉันกำลังพัฒนา - WebLaF
มันรวมสามส่วนที่จำเป็นสำหรับการพัฒนา UI ที่ประสบความสำเร็จ:
ไบนารี: https://github.com/mgarin/weblaf/releases
ที่มา: https://github.com/mgarin/weblaf
ใบอนุญาต: GPLv3และเชิงพาณิชย์
ตัวอย่างเล็ก ๆ น้อย ๆ แสดงให้เห็นว่าองค์ประกอบของ WebLaF มีลักษณะอย่างไร:
เหตุผลหลักที่ทำให้ฉันเริ่ม L&F ใหม่โดยสิ้นเชิงคือ L&F ที่มีอยู่ส่วนใหญ่ขาดความยืดหยุ่น - คุณไม่สามารถจัดสไตล์ใหม่ได้ในกรณีส่วนใหญ่ (คุณสามารถเปลี่ยนสีได้เพียงไม่กี่สีและเปิด / ปิดองค์ประกอบ UI ในกรณีที่ดีที่สุด) และ / หรือมีวิธีที่ไม่สะดวกในการทำเช่นนั้น มันยิ่งแย่ลงเมื่อพูดถึงการออกแบบส่วนประกอบของบุคคลที่สามที่กำหนดเอง - พวกเขาไม่ได้ดูคล้ายกับส่วนประกอบอื่น ๆ ที่ออกแบบโดย L&F ที่เฉพาะเจาะจงหรือแตกต่างกันโดยสิ้นเชิง - ซึ่งทำให้แอปพลิเคชันของคุณดูไม่เป็นมืออาชีพ
เป้าหมายของฉันคือการจัดหา L&F ที่ปรับแต่งได้อย่างสมบูรณ์พร้อมชุดส่วนประกอบที่เป็นที่รู้จักและมีประโยชน์เพิ่มเติม (ตัวอย่างเช่น: ตัวเลือกวันที่, ตารางต้นไม้, แท่นวางและบานหน้าต่างเอกสารและอื่น ๆ อีกมากมาย) และผู้จัดการและสาธารณูปโภคที่เป็นประโยชน์เพิ่มเติม จำนวนรหัสที่ต้องใช้เพื่อรวม WebLaF เข้ากับแอปพลิเคชันของคุณอย่างรวดเร็วและช่วยสร้าง UIs ที่ยอดเยี่ยมโดยใช้ Swing
นอกจากนี้คุณยังสามารถใช้ JTattoo ( http://www.jtattoo.net/ ) มันมีธีมเจ๋ง ๆ ที่สามารถใช้ได้
เพียงดาวน์โหลด jar และนำเข้าสู่ classpath ของคุณหรือเพิ่มเป็นพึ่งพา Maven:
<dependency>
<groupId>com.jtattoo</groupId>
<artifactId>JTattoo</artifactId>
<version>1.6.11</version>
</dependency>
นี่คือรายการของรูปแบบเจ๋ง ๆ ที่มีอยู่:
ความนับถือ
รหัสที่สร้างไดอะล็อกซึ่งอนุญาตให้ผู้ใช้แอปพลิเคชันของคุณเปลี่ยนรูปลักษณ์และความรู้สึกตามระบบของผู้ใช้ หรือถ้าคุณสามารถเก็บ 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);
}
}
}
}
}