Làm cách nào tôi có thể nhận ứng dụng java để sử dụng chủ đề GTK +?


Câu trả lời:


29

Bạn có thể thử đặt giao diện mặc định của Java thành GTK:

Mở một thiết bị đầu cuối (Ctrl + Alt + T) và dán phần trên cho openjdk và phần dưới cho sun java.

gksu gedit /usr/lib/jvm/java-6-openjdk/jre/lib/swing.properties

gksu gedit /usr/lib/jvm/java-6-sun/jre/lib/swing.properties

  • Theo dõi nhận xét trong tệp đó và xóa dấu băm, để nó trông giống như:

    # uncomment to set the default look and feel to GTK
    swing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
    
  • Lưu và khởi động lại ứng dụng java.

Trước và sau:


đã không sửa nó, nhưng vẫn rất hữu ích cho tôi :) cảm ơn!
RolandiXor

2
Cảm ơn. Tôi đã sử dụng điều này như một mẹo nhưng thay vào đó đã làm; UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");mà không yêu cầu chỉnh sửa tập tin cấu hình.
xconspirisist

@RolandiXor Nếu điều này không hoạt động, điều đó có nghĩa là nhà phát triển ứng dụng đã mã hóa giao diện. Không có gì bạn có thể làm về điều đó, trừ khi nó là nguồn mở. :(
stommestack

1
Nó giúp tôi giải quyết lỗi "jdk bold font". Cảm ơn bạn.
MInner

Không sửa lỗi cho Universalmediaserver trên Ubuntu Mate 14.
NicolasSmith

10

Nếu bạn đã thử các giải pháp trên - hãy thử sử dụng giải pháp này (đã giúp tôi trên Xfce):

  1. export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -Dswing.crossplatformlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel'

  2. Sau đó khởi chạy trong thiết bị đầu cuối này ứng dụng của bạn.

  3. Nếu bạn hài lòng với kết quả của mình - hãy thêm dòng này vào ~/.profiletệp của bạn .

Đặt nó vào ~/.profilekhông hiệu quả với tôi, nhưng tôi đã đưa _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -Dswing.crossplatformlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel" vào /etc/environment(lưu ý việc sử dụng gấp đôi thay vì trích dẫn đơn và thiếu export, nếu không thì phép thuật không hoạt động).
Photon

Hoạt động tốt với SweetHome3D và Ubuntu 18.04
NicolasSmith

7

Nếu bạn là nhà phát triển hoặc đó là một nguồn mở, một cách khác là thay đổi giao diện của ứng dụng. Chèn mã dưới đây trong mainphương thức.

for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
    if ("com.sun.java.swing.plaf.gtk.GTKLookAndFeel".equals(info.getClassName())) {   
       javax.swing.UIManager.setLookAndFeel(info.getClassName());
       break;
     } 
}

Điều này cũng có thể hữu ích.


@Jop Bạn có chắc chắn về các nền tảng khác? Còn chủ đề KDE thì sao?
gianni christofakis

1
Nevermind, tôi đã sai, xin lỗi. Nhưng tại sao không chỉ javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");?
stommestack

2
@Jop Vì Javacác ứng dụng độc lập với nền tảng, bạn nên kiểm tra xem GTKchủ đề có được cài đặt trong hệ thống của bạn không.
gianni christofakis 23/11/13
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.