2017-03-03 9 views
1

I've found this solutionアプリケーション全体のフォントを変更するには、アプリケーションに太字のフォントとJTablesのものと同じようなフォントがいくつかあります。そこに記述されている方法を使用すると、すべてがメニューであっても "普通"(この場合は "TRUETYPE")になります。私はデフォルトの太字を保持したい。スイングアプリケーションのすべてのフォントのサイズのみを変更するにはどうすればよいですか?

public static void main(String[] args) { 
     setUIFont (new javax.swing.plaf.FontUIResource("VERDANA", Font.TRUETYPE_FONT, 14)); 
     EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       try { 
        frame = new MainFrame(); 
        toggleFrame(frame); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    } 

フォント名とスタイルを変えずに、のみサイズを変更する方法はありますか? (大胆なものはすべて同じようにひどいものです)。

+1

あなたは(http://stackoverflow.com/questions/34149453/java-swing-application-too-small-in-hidpi-computers/34152675#34152675)[例えば、この]のようなものを意味ですか? - これはルック・アンド・フィールの設定にのみ影響します。フォントをコンポーネントに直接適用する場合、 '.font'キーを使用してUIManagerに格納することをお勧めします – MadProgrammer

答えて

1

解決策を少し変更することができます。

public static void setUIFontSize(int newSize) { 
    Enumeration<Object> keys = UIManager.getDefaults().keys(); 
    while (keys.hasMoreElements()) { 
     Object key = keys.nextElement(); 
     Object value = UIManager.get(key); 
     if (value != null 
       && value instanceof javax.swing.plaf.FontUIResource) { 
      FontUIResource oldFont = (FontUIResource) value; 
      UIManager.put(key, oldFont.deriveFont((float) newSize)); 
     } 
    } 
} 
関連する問題