Phông chữ xấu trong Netbeans - Làm cách nào tôi có thể sử dụng phông chữ hệ thống?


69

Tôi đang gặp sự cố khiến phông chữ Netbeans trông đẹp mắt, đây là vấn đề kể từ khi tôi dùng thử Ubuntu ~ 8. Vì một số lý do, phông chữ trông giống như chúng không được làm mịn subpixel trong Netbeans, đối với các ứng dụng còn lại trông hoàn hảo.

Nhìn vào ảnh chụp màn hình xấu xí như thế nào:

nhập mô tả hình ảnh ở đây

Đó không chỉ là khu vực mã mà mọi phông chữ trong ứng dụng đều nhìn theo cách này. Tôi đã tìm kiếm xung quanh và rõ ràng việc thêm dòng sau vào .bashrctệp sẽ khắc phục vấn đề nhưng trong trường hợp của tôi thì không:

export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=lcd'

Nó nghĩ rằng nó chỉ có thể ảnh hưởng đến các ứng dụng dựa trên Java, nhưng tôi chưa thể kiểm tra một ứng dụng Java khác để kiểm tra các phông chữ.

Có ai biết tôi có thể làm gì để khắc phục điều này? Làm cách nào để Netbeans sử dụng phông chữ hệ thống?


Tôi cũng đã xem xét và tìm cách khắc phục vấn đề này, nhưng dường như không có. Cụ thể, nó ảnh hưởng đến các ứng dụng dựa trên Swing; bạn sẽ thấy rằng Eclipse, ví dụ, trông ổn. Tôi thực sự không quá bận tâm về phông chữ mã (nó có thể thay đổi và tôi thấy rằng nó trông ổn với Droid Sans Mono ở 11pt) nhưng phông chữ chrome thực sự làm tôi khó chịu.
Jamie Schembri

Vâng, nó dường như chỉ ảnh hưởng đến các ứng dụng dựa trên java, tôi nghĩ về việc thay đổi IDE của mình chỉ vì điều này ..
Javier Villanueva

Trên thực tế, tôi đặc biệt đề cập đến Swing vì vấn đề phông chữ không hiển thị trong các ứng dụng SWT, chẳng hạn như Eclipse. Dù bằng cách nào, nó chỉ ảnh hưởng đến (một số) ứng dụng Java. Ngoài ra, tôi có thể xác nhận rằng sự cố vẫn còn ở Netbeans 7.0 RC1.
Jamie Schembri

Bạn nói đúng, tôi đã chuyển sang Aptana và họ trông ổn ở đó, hy vọng tôi có thể tìm thấy bản sửa lỗi này. Tôi thực sự thích Netbeans nhưng những phông chữ đó đã khiến tôi phát điên.
Javier Villanueva

1
Hiện tôi đang sử dụng 'Droid Sans Mono', cỡ 16 với '-J-Dawt.useSystemAAFontSinstall = on --laf javax.swing.plaf.nimbus.NimbusLookAndFeel -J-Dsun.java2d.noddraw = true -Junun java2d.dpiaware = true '
Karussell

Câu trả lời:


38

Như đã nêu trong các bình luận, đây là một vấn đề với các ứng dụng Java Swing trên Linux. Swing không sử dụng cài đặt làm mịn phông chữ của Gnome (đã hủy kích hoạt, thang độ xám hoặc pixel phụ) - mặc dù vậy, nó bỏ qua các cài đặt gợi ý. Nó luôn sử dụng gợi ý đầy đủ và nếu bạn đang chạy Ubuntu với ít hoặc không có gợi ý về phông chữ (vì hầu hết mọi người đều làm vì gợi ý nhỏ là cài đặt mặc định), điều này sẽ làm cho phông chữ xuất hiện khác biệt đáng kể so với các ứng dụng khác. Các ứng dụng SWT như Eclipse đều ổn, nhưng nếu bạn thích Netbeans thì điều này sẽ không giúp ích gì cho bạn.

Hãy cẩn thận: Đối với cách giải quyết sau đây, tôi chỉ nói về phông chữ của trình soạn thảo, bởi vì trong một IDE đó là điều quan trọng đối với tôi. Bạn cũng có thể áp dụng nó cho các phông chữ menu, v.v., nhưng điều đó có thể hơi vượt trội.

Giải pháp có thể sử dụng duy nhất tôi tìm thấy ở đây : sử dụng Fontforge để chỉnh sửa phông chữ lựa chọn của bạn và xóa tất cả thông tin gợi ý khỏi phông chữ, sau đó lưu nó dưới dạng phông chữ mới và sử dụng nó trong Netbeans.

  1. sudo apt-get install fontforge
  2. Ra mắt Fontforge
  3. Mở phông chữ bạn chọn
  4. Ctrl+ Ahoặc edit -> Select -> Select allđể chọn tất cả các ký tự
  5. Gợi ý Xóa hướng dẫn
  6. Ctrl+ Shift+ Fhoặc element -> font infođể mở thông tin phông chữ
  7. Đổi tên phông chữ (ví dụ: tên gốc + '_nohint')
  8. Lưu phông chữ đã chỉnh sửa trong .fontsthư mục trong nhà của bạn, thông qua file -> generate fonts, đảm bảo sử dụng định dạng mà Ubuntu đọc (xem bước tiếp theo)
  9. Xóa bộ đệm phông chữ fc-cache -rv- theo đầu ra của nó để đảm bảo tệp phông chữ mới của bạn đã được chọn (ví dụ: .sfdkhông nhưng .ttfkhông).
  10. Chạy Netbeans và sử dụng phông chữ bạn đã tạo làm phông chữ biên tập

Không, không hoàn hảo và vâng, một chút rắc rối, nhưng vẫn là một thế giới khác biệt. Mong rằng sẽ giúp.


3
Tôi đã sử dụng Monospace, một mặc định trong NetBeans. Tôi đã cố gắng khắc phục Ubuntu Monospace, và nó có vẻ tốt hơn bây giờ, nhưng sau đó vẫn tệ hơn Monospace. Dù sao cũng cảm ơn bạn. Nếu tôi có thể tìm thấy Monospacevị trí trên hệ thống tập tin, tôi cũng sẽ cố gắng sửa nó.
umpirsky

Cảm ơn bạn rất nhiều ... Giải pháp làm việc duy nhất tôi đã tìm thấy. Tôi phát điên với cái này !!
Stefanos Kalantzis

Không chắc tệp phông chữ nào là phông chữ của tôi ... Có 9 tệp phông chữ khác nhau cho riêng phông chữ Ubuntu, vì vậy cần tham khảo font.ubfox.com để tìm ra cái nào để sửa. Hy vọng điều này sẽ làm việc.
matt

17

Thêm vào

--laf Nimbus -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd

hoặc là

-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd --laf Metal

vào tập tin: netbeans.config. Bạn có thể tìm thấy nó trong thư mục $ NETBEANS_HOME / etc /. Làm cho phông chữ ứng dụng của bạn nhỏ hơn từ các tùy chọn hệ thống.

Nguồn


9
Các tập tin cấu hình thường là tại /home/<user_name>/<neabeans_folder>/etc/netbeans.conf.
Bibhas

2
Không làm việc cho tôi :(
szx 20/07/13

Tệp cấu hình nằm trong /etc/netbeans.conf Dòng đầu tiên không hoạt động với tôi nhưng dòng thứ hai đã thực hiện thủ thuật
Christian Vielma

Tôi không thấy bất kỳ sự khác biệt sau khi thêm dòng này. A. vẫn chỉ là một pixel, ví dụ, nơi nó hiển thị độc đáo trong bất kỳ ứng dụng nào khác.
NoBugs

Điều này đã làm cho tôi lừa.
Nico M

7

Tôi biết đây là một câu hỏi cũ, nhưng trong quá trình tìm kiếm cùng một vấn đề, tôi đã thử tất cả các mánh khóe ở đây mà không gặp may mắn. Tôi nghĩ rằng tôi sẽ phải sống với văn bản khủng khiếp trên mạng.

Sau đó, tôi tìm thấy cái này: http://youtrack.jetbrains.com/su/IDEA-57233#comment=27-472038

Về cơ bản: Ubuntu 13.10, Netbeans (7.3), bản vá phông chữ Infinality cho freetype, OpenJDK7 và các bản vá cho nó để sửa lỗi xử lý phông chữ Swings ảm đạm. Và nó "chỉ hoạt động" !!!

Sao chép ở đây trong trường hợp liên kết chết:

  1. cài đặt freetype

    $ sudo apt-get install libfreetype6
    
  2. cài đặt bản vá lỗi

    $ sudo add-apt-repository ppa:no1wantdthisname/ppa
    $ sudo apt-get update
    $ sudo apt-get install fontconfig-infinality
    

    Tôi đã phải làm như sau:

    $ sudo rm /etc/fonts/conf.avail/52-infinality.conf
    $ sudo ln -s /etc/fonts/infinality/infinality.conf /etc/fonts/conf.avail/52-infinality.conf
    

    Để sử dụng Windows 7 như hiển thị phông chữ, hãy làm như sau:

    $ sudo /etc/fonts/infinality/infctl.sh setstyle win7
    

    Đặt USE_STYLE thành "WINDOWS7" trong /etc/profile.d/infinality-sinstall.sh

  3. cài đặt phông chữ cố định OpenJDK

    $ sudo add-apt-repository ppa:no1wantdthisname/openjdk-fontfix
    $ sudo apt-get update
    $ sudo apt-get install openjdk-7-jdk
    

    Trong .../etc/netbeans.conf,

    netbeans_default_optionsbao gồm: -J-Dawt.useSystemAAFontSettings=lcd-J-Dsun.java2d.xrender=true"

    và thiết lập netbeans_jdkhome="/usr/lib/jvm/java-1.7.0-openjdk-amd64"

Điều này đã thay đổi phông chữ Netbeans của tôi từ năm 1990 được chấp nhận sang thời hiện đại tuyệt vời. Và bây giờ tôi có thể sử dụng Inconsolata làm phông chữ trình soạn thảo Netbeans của mình và nó trông thật TUYỆT VỜI.

Ảnh chụp màn hình theo yêu cầu: (văn bản thực tế rõ ràng hơn bản chụp này. Một cái gì đó trong bản chụp làm mờ nó một chút). nhập mô tả hình ảnh ở đây


như một chú thích: "-J-Dsun.java2d.xrender = true" đã giới thiệu một số trục trặc kết xuất. đặt thành sai, sửa lỗi kết xuất khi cuộn nhanh, nhưng không ảnh hưởng đến phông chữ đẹp.
Chris Holt

Một lưu ý tiếp theo nhanh chóng: nếu pacjage openjdk được cập nhật trước phông chữ cố định và bạn áp dụng nó, bạn có thể hoàn nguyên lại như sau: đối với openjdk-7-jdk, openjdk-7-jre và openjdk-7-jre , gỡ cài đặt chúng và sau đó cài đặt các phiên bản trước từ repo sửa lỗi phông chữ. apt-cache policy <package>sẽ cho bạn thấy các phiên bản. tức là apt-get remove openjdk-7-jdk openjdk-7-jre openjdk-7-jre-headless apt-get install openjdk-7-jdk=7u51-2.4.4-0ubuntu0.13.10.1ppa2 openjdk-7-jre=7u51-2.4.4-0ubuntu0.13.10.1ppa2 openjdk-7-jre-headless=7u51-2.4.4-0ubuntu0.13.10.1ppa2
Chris Holt

bạn có thể đính kèm hình ảnh, nó trông như thế nào bây giờ?
La Mã

5

Tính năng khử răng cưa của các phông chữ không hoạt động chính xác trong các ứng dụng Ubuntu Java Swing.

Thêm vào:

-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd

đến netbeans.config ở cuối netbeans_default_optionschuỗi.

Bạn có thể tìm thấy tệp cấu hình trong thư mục $ NETBEANS_HOME / etc / (vd /home/<user_name>/<neatbeans_folder>/etc/netbeans.conf)

Thí dụ:

netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-Dnetbeans.logger.console=true -J-ea -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true -J-Dnetbeans.extbrowser.manual_chrome_plugin_install=yes -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd"

Đối với tôi, tệp cấu hình được đặt tại /etc/netbeans.conf(và được liên kết sym từ những nơi khác).
Cedric Reichenbach

Nguồn rõ ràng: rdeeson.com/weblog/159/fix-ugly-fonts-in-netbeans-under-linux - đã làm việc cho tôi
loxaxs

2

Nó không tệ đến mức phông chữ ..

Tuy nhiên, đây là một ứng dụng Java và như một cách xử lý phông chữ cụ thể.

Nếu bạn chỉ muốn thay đổi kích thước phông chữ, bạn có thể khởi động Netbeans với tham số "--fontsize" :

netbeans --fontsize 12

Nếu bạn muốn thay đổi loại phông chữ, thì việc thay đổi các tham số môi trường khó hơn một chút và bài viết này giải thích rất rõ:

https://wiki.archlinux.org/index.php/Java_R nb_En Môi trường

Đây là dành cho ArchLinux nhưng tôi nghĩ nó cũng sẽ hoạt động trong Ubuntu vì Java là một phần mềm phổ quát.


2

Tôi gặp vấn đề tương tự trên Ubuntu 12.04 và Netbeans 7.2.

Tôi đã thử thêm -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcdvào netbeans.confnhưng nó không giải quyết được vấn đề.

Sau đó, tôi thấy bình luận vấn đề liên quan đến chiều cao dòng tại lỗi Netbeans 215785 . Đặt chiều cao của trình soạn thảo thành 1.0 cùng với cài đặt AA để netbeans.confgiải quyết vấn đề của tôi.


1

Tôi đã có thể làm điều này như vậy (Tôi đang sử dụng Ubuntu 12.10, cũng đã làm việc trên Ubuntu 13.04):


Bước 1 (Điều này có thể hoạt động trong tất cả các phiên bản Ubuntu):

Đầu tiên tôi dọn dẹp các menu bằng plugin này Tools -> Plugins -> Settings -> Add:

http://java-swing-ayatana.googlecode.com/files/netbeans-catalog.xml

Khi vị trí đó được thêm vào, bạn cần cài đặt plugin, bằng cách tìm kiếm Java Ayatana(mô tả sẽ bằng tiếng Tây Ban Nha). Điều này sẽ làm cho menu trên cùng và ngữ cảnh giống như hệ điều hành.


Bước 2 (Tôi không biết điều này có hoạt động trong tất cả các phiên bản Ubuntu không):

Tiếp theo, bạn có thể muốn các phông chữ dự án trông đẹp hơn, những gì tôi đã làm để khắc phục điều này đã chạy trong thiết bị đầu cuối: sudo apt-get install gnome-tweak-toolTôi đã khởi chạy nó và chọn một default fontNetbeans khác trông rất đẹp!

Đây là một ảnh chụp màn hình:

nhập mô tả hình ảnh ở đây


Thay đổi phông chữ 'Giao diện' trên các công cụ chỉnh sửa đã giúp tôi rất nhiều. Tôi chỉ gặp vấn đề với những văn bản đó (bị cắt làm đôi!)
Makiavelo

1

Chỉ cần xem bài đăng này và cố gắng khắc phục sự cố phông chữ của tôi, tôi cũng gặp sự cố, tôi chỉ có thể chọn 4 phông chữ bị khập khiễng và tự hỏi điều gì đã xảy ra khi netbeans chỉ cung cấp 4 phông chữ để chọn và cũng là hộp chọn phông chữ khập khiễng, tôi là một fan hâm mộ lớn của netbeans và tôi biết tôi có thể tìm thấy giải pháp ở đây.

bất cứ cách nào tôi làm theo tất cả các hướng dẫn có thể. Tôi sử dụng Ubuntu 13.10 và netbeans 7.3 (vâng, tôi thích những thứ không ổn định)

  1. tạo thư mục .font trong thư mục người dùng của tôi.
  2. sao chép tất cả các phông chữ tôi có vào thư mục đó.
  3. đã thêm dòng sau vào tệp netbeans.conf

tìm nó bằng cách chạy:

locate netbeans.conf

chỉnh sửa nó và thêm vào sau đây trong dấu ngoặc kép như đề xuất ở trên

-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd --laf Metal
  1. chạy cập nhật netbeans mà tôi nghĩ đã làm điều kỳ diệu bây giờ tôi có trình chọn phông chữ đẹp và có nhiều phông chữ hơn để chọn sau đó viết mã để viết (trò đùa ununny).

Tôi hy vọng nó sẽ giúp bạn.


1

Đi thêm một bước tới các cách thủ công, tôi đã chuẩn bị một phông chữ chuyên dụng có tên là "Ubuntu Mono Nohinting" để khắc phục sự cố kết xuất với các ứng dụng Java Swing như NetBeans IDE, IntelliJ IDEA và PyCharm. Thông tin gợi ý phông chữ đã bị xóa khỏi họ phông chữ Ubuntu Mono ban đầu.

Cài đặt thế nào

  • tải tập tin zip từ đây
  • giải nén nó
  • mở * .ttf với Trình xem Phông chữ để cài đặt.
  • hoặc bạn có thể sao chép thủ công * .ttf vào ~/.local/share/fonts/.

Cách sử dụng

  • Chọn "Ubuntu Mono Nohinting" trong cấu hình của các biên tập viên.

Ảnh chụp màn hình

Phông chữ Ubuntu Mono với chủ đề PyCharm Monokai

Phông chữ Ubuntu Mono với chủ đề PyCharm Monokai

Ubuntu Mono Nohinting Font với chủ đề PyCharm Monokai

Ubuntu Mono Nohinting Font với chủ đề PyCharm Monokai


1

Thêm mã sau vào cuối tệp netbeans_default_optionscủa bạn netbeans.conf.

-J-Dawt.useSystemAAFontSettings=on

Điều này sẽ sử dụng các phông chữ hệ thống.


0
#!/bin/sh

gsettings set org.gnome.desktop.interface font-name 'Ubuntu 10'
sh /home/xxx/netbeans-7.2/bin/netbeans &
sleep 5
gsettings set org.gnome.desktop.interface font-name 'Ubuntu 11'

7
Chào mừng bạn đến hỏi Ubuntu! Câu trả lời này sẽ có lợi đáng kể, nếu bạn chỉnh sửa nó để thêm một số giải thích (hoặc ít nhất là nói cho người dùng biết chính xác phải làm gì với những dòng này).
Eliah Kagan

0

Cá nhân, tôi nghĩ rằng sự xuất hiện mặc định chung của Netbeans trên Linux là một chút thất vọng đặc biệt là xem xét nó trông đẹp như thế nào trên các nền tảng khác. Rất may, việc thay đổi giao diện (LAF) có thể được thực hiện dễ dàng từ bên trong IDE. Tùy thuộc vào lựa chọn của bạn, điều này thường sẽ cải thiện sự xuất hiện của phông chữ.

Để thay đổi LAF, hãy làm như sau: Nhấp vào Công cụ >> Tùy chọn Trong hộp thoại, chọn Giao diện rồi tab Giao diện và Cảm nhận Chỉ cần chọn một trong các LAF. Sở thích của tôi là Nimbus, nhưng bạn có thể thích thứ khác.

Ngoài ra còn có hai plugin 'Dark LAFs có sẵn: Dark Metal và Dark Nimbus.


0

Bản thân tôi đã làm một điều khác biệt: trong trường hợp của tôi, nói về NetBeans phiên bản 8.0.1 , vấn đề là JDK được cài đặt trên hệ thống (Oracle JDK 8.0). Sau khi chuyển sang OpenJDK 8 phông chữ đẹp hơn xuất hiện trong các thành phần giao diện người dùng.

Tôi không biết đó có phải là một câu trả lời hay không, bởi vì nó có thể không hoạt động ở mọi nơi, nhưng chắc chắn - thử bằng cách chuyển đổi JDK (có thể là OpenJDK hoặc Oracle JDK), bạn có thể thấy một sự khác biệt.


0

Tôi đã thử mọi giải pháp mà tôi có thể tìm thấy và không có giải pháp nào hoạt động trừ việc sử dụng JDK mặc định khác cho NetBeans.

JDK của Oracle không hiển thị phông chữ tốt. OpenJDK dường như cũng không hoạt động cho NetBeans nhưng hoạt động kỳ diệu cho IntelliJ và anh chị em của nó.

Công cụ đã làm việc cho NetBeans được gọi là TuxJDK , về cơ bản là OpenJDK được tăng cường cho các nhà phát triển Java làm việc trên Linux. Một trong những cải tiến là kết xuất phông chữ tuyệt vời .

Đây là cách sử dụng nó:

  1. Tải về hệ số nhị phân của TuxJDK từ đây . ("tuxjdk-static-8.92.03.tar.xz" tại thời điểm viết bài)
  2. Giải nén tar.xz bất cứ nơi nào bạn thích.
  3. Sao chép vị trí của thư mục TuxJDK.
  4. Mở netbeans.conf nằm trong NetBeansInstallationDirectory / etc /.
  5. Tìm dòng bắt đầu bằng "netbeans_jdkhome" và thay thế đường dẫn bằng đường dẫn được sao chép trong Bước 3.
  6. Bật lửa và NetBeans và xử lý đôi mắt của bạn với một số phông chữ đẹp!

Trước: NetBeans trước khi sử dụng TuxJDK

Sau: NetBeans sau khi sử dụng TuxJDK


0

Chỉ cần cài đặt zulu jdk từ http://zulu.org :)


Nó làm gì?
PerlDuck

Các jdk zulu đã cải thiện kết xuất phông chữ. Vì vậy, nó có thể cho kết quả tương tự như tuxjdk.
Arun

-1

Tôi gặp vấn đề tương tự trên Mint 12. Tôi đã giải quyết nó bằng cách nhập "Cài đặt nâng cao" -> "Phông chữ" và giảm phông chữ mặc định từ 11 xuống 10. Tôi hạ tất cả các phông chữ trong danh sách xuống mức nhất quán.

Phải có một số vấn đề với phông chữ Cantarell 11.

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.