แบบอักษรที่น่ารังเกียจ / ไม่ใช่ต่อต้านนามแฝงในแอปพลิเคชัน Java-Swing


15

ฉันเพิ่งเปลี่ยนมาใช้ Ubuntu และฉันติดตั้ง Java JDK 8u45 (32 บิต) ของ Oracle โดยใช้ webupd8team / java repository

ดูเหมือนว่าทุกอย่างจะทำงานได้ดียกเว้นว่าแอปพลิเคชัน Java-Swing มีแบบอักษรที่แตกหักและน่าเกลียดโดยไม่มีการป้องกันนามแฝง การเปลี่ยนแบบอักษรไม่ทำงาน แอปพลิเคชันดั้งเดิมเช่น Gedit แม้ว่าจะมีแบบอักษรเดียวกันจะไม่ได้รับผลกระทบ (หรือไม่ใช่แอปพลิเคชัน Java ที่ไม่ใช่ Swing เช่น Eclipse) ส่งผลกระทบต่อแอปพลิเคชันที่ใช้ Swing เท่านั้น

สกรีนช็อต: (jEdit v5.1)

สกรีนช็อตของ jEdit

ฉันใช้ Ubuntu 15.04 (ซึ่งเป็นเวอร์ชั่นล่าสุด ณ วันที่ 2015-06-15) Java เวอร์ชันของฉันคือ 1.8.0_45 และ 'java -version' ให้เอาต์พุตต่อไปนี้:

java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) Server VM (build 25.45-b02, mixed mode)

ฉันได้ลองแก้ไขที่ให้ในคำถามที่คล้ายกัน (ที่นี่และในเว็บไซต์ stackexchange อื่น ๆ ) แต่พวกเขาไม่ทำงาน ฉันได้เพิ่มบรรทัดต่อไปนี้ใน / etc / environment (ตามที่ระบุไว้ที่นี่: https://wiki.archlinux.org/index.php/Java_Runtime_Environment_Fonts ) แต่พวกเขาไม่ได้ให้ผลลัพธ์ที่ชัดเจนใด ๆ

JAVA_FONTS=/usr/share/fonts/truetype
_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'

ฉันแน่ใจว่าต้องมีการแก้ไขสำหรับสิ่งนี้ Java-Applications เดียวกันทำงานได้อย่างที่ควรจะเป็นใน Windows-7

คำตอบ:


16

ปัญหานี้ได้รับการแก้ไขนานดังนั้นฉันตัดสินใจว่าฉันควรโพสต์วิธีแก้ปัญหา โปรดทราบว่าปัญหายังคงมีอยู่ตามค่าเริ่มต้น แต่สามารถแก้ไขได้โดยพารามิเตอร์

เพิ่มบรรทัดนี้:

_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true'

เพื่อ/etc/environmentแก้ไขปัญหา

การแก้ไขนี้ทำงานได้ตั้งแต่ Ubuntu 16.04 และ OpenJDK 8u151 (ยังไม่ได้ตรวจสอบกับ Oracle JDK หรือ Java 9)

ตัวอย่างการทำงาน: ป้อนคำอธิบายรูปภาพที่นี่

หมายเหตุ : การตั้งค่าแบบอักษรและ AA บางอย่างทำให้ปัญหาซับซ้อนขึ้น ใน jEdit ฉันใช้ฟอนต์ Java เริ่มต้น ("ไดอะล็อก" ตามที่มันเรียกว่า) สำหรับทุกสิ่ง คุณอาจจะสามารถใช้แบบอักษรที่แตกต่างกันสำหรับ Text-Area แต่ Dialog นั้นดีที่สุดสำหรับปุ่ม ฯลฯ การตั้งค่า AA ของ Text-Area ที่ดีที่สุดที่ฉันพบคือมาตรฐานแต่ระยะทางของคุณอาจแตกต่างกันไป


1
ทางออกของคุณยอดเยี่ยม!
Nadav B

1
ต้องการอีกครั้งใน Ubuntu 18.10 และ OpenJDK 11 และยังคงใช้งานได้! :)
tanius
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.