2014-03-01 21 views
2

使用帶有JCheckBox的自定義字體時,我遇到了Java(swing)中的輕微視覺問題。我有一個跨越多行文本的JCheckBox。當使用默認字體時,它看起來很好。但是,當我使用自定義字體(從.ttf文件實時導入)時,垂直對齊看起來略微偏移,使其看起來很醜。伴隨複選框的文本應該比顯示的稍高JCheckBox:用於多行文本的垂直對齊

有沒有什麼辦法來調整複選框的垂直位置的文本標籤?發生這種情況時,我使用此代碼頂部對齊複選框:checkbox.setVerticalTextPosition(SwingConstants.TOP)

enter image description here

+0

默認字體有什麼問題?尺寸?瀝青?樣式?可用的字形? – trashgod

+0

@trashgod大小+風格,我想。我只想使用不同的字體。我在我的用戶界面的其餘部分也使用這種字體。 – uyuyuy99

回答

3

每個平臺指定物理字體使用的定義邏輯Font家庭。這些字體具有已知與主機平臺兼容的明確定義的指標。使用奇數字體會讓您置身於字體設計師和平臺的字體提示實施。相反,使用UIManager導出所需的大小和樣式之前構建GUI,如圖所示here

+0

感謝您的回覆。我使用的字體是Roboto,這是一種相當常見的字體,所以我認爲它應該在擺動時正常工作。我試着做你說的,但它似乎只是改變了字體的大小/樣式 - 問題依然存在。 – uyuyuy99

+1

對,問題在於平臺如何使用從主機操作系統獲取的指標來應用字體。除了樣式和大小,您還可以應用「AffineTransform」。 – trashgod

+0

感謝讓我意識到AffineTransform - 我嘗試應用翻譯到字體來抵消其位置。無論出於何種原因,它似乎適用於我的程序中的所有文本,除了複選框的標籤。無論如何,我找到了一種解決方法 - 我使用了一個複選框和一個單獨的文件,無論出於何種原因,這個字體似乎都更好。 – uyuyuy99