Swing(Nimbus)のフォントを変更する



デフォルトのフォントが小さく、明朝体なので大きなゴシック体にしたいと思い探し回ったのだが、どうにもうまく行かない。別にプログラム実行中に変えたいわけではなく、初期値として与えたいのだが、それもだめだ。主にボタンやラベルのフォントがそのままになってしまう。

うまく行ったのは、以下の8番の回答だ。

こんな感じになる。

      Font font = new Font("メイリオ", Font.BOLD, 30);
      UIManager.setLookAndFeel(new NimbusLookAndFeel() {
        @Override
        public UIDefaults getDefaults() {
         UIDefaults ret = super.getDefaults();
         ret.put("defaultFont", font);
         return ret;
        }
      });

この方法は他のUIにも有効のようだ。Web Look and Feelなどは日本語が表示されていなかったのだが、正常に表示されるようになった。

ついでにアンチエイリアスが効いてないので、以下も入れる。

      System.setProperty("awt.useSystemAAFontSettings","on");
      System.setProperty("swing.aatext", "true");