NetBeans ルック・アンド・フィールとカラースキームとフォント(Windows)¶
ねこび~ん
Windows上でNetBeansを動かすと、外観部分にいくつか手を入れたくなる点があります。
たとえば、MSゴシック、MS明朝が使われ、埋め込みビットマップフォントで描かれるので汚く見えるとか、背景が白基調で輝度が高く長時間プログラミングすると目に負担がかかるなどです。また、お気に入りの画像を背景に表示するとプログラミングが通常の3倍捗るという人もいるかと思います。
そこで、全体をアウトラインフォントにする、背景を暗い色基調にして目にやさしくする、背景に画像を表示する、といった設定を行います。
ルック・アンド・フィールとフォント¶
デフォルトのルック・アンド・フィールとフォント¶
Windows 7 OS上へNetBeansをインストールして起動したときの表示を次の画面に示します(画面をクリックすると拡大表示します)。

NetBeansは、Javaで記述されたアプリケーションプログラムで、GUIにはSwingが使われています。Windows上でNetBeansを実行したときのSwingのデフォルト・ルック・アンド・フィールはWindows Look and Feelが使われます。
Windows 7の設定で「ウィンドウの色とデザイン」からメニューなどをメイリオに設定することで、NetBeansのメニュー表示(上記画面キャプチャの青枠部分)は「メイリオ」フォントで表示されますが、それ以外のほとんどの箇所(上記画面キャプチャの赤枠部分)では「MS ゴシック」フォントと一部「MS 明朝」フォントが使われています。メイリオフォントはアンチエイリアスが効いてギザギザが目立ちませんが、MS ゴシック/MS 明朝フォントはアンチエイリアスが効かずギザギザな表示となっており、ボールド体(太字)については悲惨な表示になっています。
同じTrueTypeフォントにもかかわらず、「メイリオ」フォントがアンチエイリアス表示となり、「MS ゴシック」や「MS 明朝」フォントはアンチエイリアス表示となりません。その理由は、「MS ゴシック」と「MS 明朝」フォントには埋め込みビットマップフォントが含まれていて、表示する文字の大きさが8ポイント~16ポイントの場合TrueTypeフォント(アウトライン)データではなく埋め込みビットマップフォントデータを使って表示され、ビットマップフォントはアンチエイリアスが効かないためです。
Nimbusルック・アンド・フィールとフォント¶
ルック・アンド・フィールを変更するとフォント設定もそれに合わせて変化します。そこで、ルック・アンド・フィールを変えてみることにします。
[ツール]メニュー > [オプション] で「オプション」ダイアログを開き、[外観]ボタンを押し、[ルック・アンド・フィール]タブを選択します。

[優先ルック・アンド・フィール]ドロップダウンリストから、[Nimbus]を選択します。
NetBeansを再起動すると、Nimbusルック・アンド・フィールで起動します。次の画面に示します。

プロジェクトペイン、ナビゲータペインやタブにおいて、英字フォントはアウトライン表示されるようになりましたが、こんどはメニューを含めてほかはビットマップ表示されています。先ほどのWindowsルック・アンド・フィールは、メニュー表示のフォントをOSの設定から取得してくるので、OS側の設定でメニュー表示フォントをメイリオに設定しておくとメイリオが使用されました。Nimbusルック・アンド・フィールはOSの設定は使わないため、Windows版のJava SEのフォント設定(MS ゴシック)が使用されています。
なお、フォントが汚いのは、あくまでMSゴシックとWindows OSの問題なので、以後はフォントを変えることにします。
NetBeansを動かすJavaVMのフォント設定を変更する¶
冒頭に述べたように、NetBeansはJavaで作られたアプリケーションで、GUIはSwingを使っています。Windows版のJava SEでは、デフォルトのフォント設定にMSゴシックやMS明朝が指定されています。
これを別なフォント(例えばメイリオ)に変更することでフォントの見栄えをよくします。
フォント設定は、JDKの場合、%JAVA_HOM%\jre\lib\fontconfig.properties
、JREの場合、%JRE_HOME%lib\fontconfig.properties
に記述します。
例)C:\Program Files\Java\jdk1.8.0\jre\lib\fontconfig.properties
デフォルトの設定は、fontconfig.properties.src
に書かれているので、これをfontconfig.properties
に変更し修正します。
修正内容は次に示します。
fontconfig.properties.srcからの修正点を表示する 隠す
--- fontconfig.properties.src 2014-02-14 00:00:05.870694000 +0900
+++ fontconfig.properties 2013-09-15 22:55:30.000000000 +0900
@@ -47,140 +47,140 @@
serif.plain.chinese-ms950=MingLiU
serif.plain.chinese-ms950-extb=MingLiU-ExtB
serif.plain.hebrew=David
-serif.plain.japanese=MS Mincho
+serif.plain.japanese=IPAexMincho
serif.plain.korean=Batang
serif.bold.alphabetic=Times New Roman Bold
serif.bold.chinese-ms950=PMingLiU
serif.bold.chinese-ms950-extb=PMingLiU-ExtB
serif.bold.hebrew=David Bold
-serif.bold.japanese=MS Mincho
+serif.bold.japanese=IPAexMincho
serif.bold.korean=Batang
serif.italic.alphabetic=Times New Roman Italic
serif.italic.chinese-ms950=PMingLiU
serif.italic.chinese-ms950-extb=PMingLiU-ExtB
serif.italic.hebrew=David
-serif.italic.japanese=MS Mincho
+serif.italic.japanese=IPAexMincho
serif.italic.korean=Batang
serif.bolditalic.alphabetic=Times New Roman Bold Italic
serif.bolditalic.chinese-ms950=PMingLiU
serif.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
serif.bolditalic.hebrew=David Bold
-serif.bolditalic.japanese=MS Mincho
+serif.bolditalic.japanese=IPAexMincho
serif.bolditalic.korean=Batang
sansserif.plain.alphabetic=Arial
sansserif.plain.chinese-ms950=MingLiU
sansserif.plain.chinese-ms950-extb=MingLiU-ExtB
sansserif.plain.hebrew=David
-sansserif.plain.japanese=MS Gothic
+sansserif.plain.japanese=Meiryo UI
sansserif.plain.korean=Gulim
sansserif.bold.alphabetic=Arial Bold
sansserif.bold.chinese-ms950=PMingLiU
sansserif.bold.chinese-ms950-extb=PMingLiU-ExtB
sansserif.bold.hebrew=David Bold
-sansserif.bold.japanese=MS Gothic
+sansserif.bold.japanese=Meiryo UI
sansserif.bold.korean=Gulim
sansserif.italic.alphabetic=Arial Italic
sansserif.italic.chinese-ms950=PMingLiU
sansserif.italic.chinese-ms950-extb=PMingLiU-ExtB
sansserif.italic.hebrew=David
-sansserif.italic.japanese=MS Gothic
+sansserif.italic.japanese=Meiryo UI
sansserif.italic.korean=Gulim
sansserif.bolditalic.alphabetic=Arial Bold Italic
sansserif.bolditalic.chinese-ms950=PMingLiU
sansserif.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
sansserif.bolditalic.hebrew=David Bold
-sansserif.bolditalic.japanese=MS Gothic
+sansserif.bolditalic.japanese=Meiryo UI
sansserif.bolditalic.korean=Gulim
-monospaced.plain.alphabetic=Courier New
+monospaced.plain.alphabetic=Consolas
monospaced.plain.chinese-ms950=MingLiU
monospaced.plain.chinese-ms950-extb=MingLiU-ExtB
monospaced.plain.hebrew=Courier New
-monospaced.plain.japanese=MS Gothic
+monospaced.plain.japanese=Meiryo UI
monospaced.plain.korean=GulimChe
-monospaced.bold.alphabetic=Courier New Bold
+monospaced.bold.alphabetic=Consolas Bold
monospaced.bold.chinese-ms950=PMingLiU
monospaced.bold.chinese-ms950-extb=PMingLiU-ExtB
monospaced.bold.hebrew=Courier New Bold
-monospaced.bold.japanese=MS Gothic
+monospaced.bold.japanese=Meiryo UI
monospaced.bold.korean=GulimChe
-monospaced.italic.alphabetic=Courier New Italic
+monospaced.italic.alphabetic=Consolas Italic
monospaced.italic.chinese-ms950=PMingLiU
monospaced.italic.chinese-ms950-extb=PMingLiU-ExtB
monospaced.italic.hebrew=Courier New
-monospaced.italic.japanese=MS Gothic
+monospaced.italic.japanese=Meiryo UI
monospaced.italic.korean=GulimChe
-monospaced.bolditalic.alphabetic=Courier New Bold Italic
+monospaced.bolditalic.alphabetic=Consolas Bold Italic
monospaced.bolditalic.chinese-ms950=PMingLiU
monospaced.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
monospaced.bolditalic.hebrew=Courier New Bold
-monospaced.bolditalic.japanese=MS Gothic
+monospaced.bolditalic.japanese=Meiryo UI
monospaced.bolditalic.korean=GulimChe
dialog.plain.alphabetic=Arial
dialog.plain.chinese-ms950=MingLiU
dialog.plain.chinese-ms950-extb=MingLiU-ExtB
dialog.plain.hebrew=David
-dialog.plain.japanese=MS Gothic
+dialog.plain.japanese=Meiryo UI
dialog.plain.korean=Gulim
dialog.bold.alphabetic=Arial Bold
dialog.bold.chinese-ms950=PMingLiU
dialog.bold.chinese-ms950-extb=PMingLiU-ExtB
dialog.bold.hebrew=David Bold
-dialog.bold.japanese=MS Gothic
+dialog.bold.japanese=Meiryo UI
dialog.bold.korean=Gulim
dialog.italic.alphabetic=Arial Italic
dialog.italic.chinese-ms950=PMingLiU
dialog.italic.chinese-ms950-extb=PMingLiU-ExtB
dialog.italic.hebrew=David
-dialog.italic.japanese=MS Gothic
+dialog.italic.japanese=Meiryo UI
dialog.italic.korean=Gulim
dialog.bolditalic.alphabetic=Arial Bold Italic
dialog.bolditalic.chinese-ms950=PMingLiU
dialog.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
dialog.bolditalic.hebrew=David Bold
-dialog.bolditalic.japanese=MS Gothic
+dialog.bolditalic.japanese=Meiryo UI
dialog.bolditalic.korean=Gulim
dialoginput.plain.alphabetic=Courier New
dialoginput.plain.chinese-ms950=MingLiU
dialoginput.plain.chinese-ms950-extb=MingLiU-ExtB
dialoginput.plain.hebrew=David
-dialoginput.plain.japanese=MS Gothic
+dialoginput.plain.japanese=Meiryo UI
dialoginput.plain.korean=Gulim
dialoginput.bold.alphabetic=Courier New Bold
dialoginput.bold.chinese-ms950=PMingLiU
dialoginput.bold.chinese-ms950-extb=PMingLiU-ExtB
dialoginput.bold.hebrew=David Bold
-dialoginput.bold.japanese=MS Gothic
+dialoginput.bold.japanese=Meiryo UI
dialoginput.bold.korean=Gulim
dialoginput.italic.alphabetic=Courier New Italic
dialoginput.italic.chinese-ms950=PMingLiU
dialoginput.italic.chinese-ms950-extb=PMingLiU-ExtB
dialoginput.italic.hebrew=David
-dialoginput.italic.japanese=MS Gothic
+dialoginput.italic.japanese=Meiryo UI
dialoginput.italic.korean=Gulim
dialoginput.bolditalic.alphabetic=Courier New Bold Italic
dialoginput.bolditalic.chinese-ms950=PMingLiU
dialoginput.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
dialoginput.bolditalic.hebrew=David Bold
-dialoginput.bolditalic.japanese=MS Gothic
+dialoginput.bolditalic.japanese=Meiryo UI
dialoginput.bolditalic.korean=Gulim
# Search Sequences
@@ -224,7 +224,7 @@
sequence.serif.windows-31j=alphabetic,japanese,dingbats,symbol
sequence.sansserif.windows-31j=alphabetic,japanese,dingbats,symbol
-sequence.monospaced.windows-31j=japanese,alphabetic,dingbats,symbol
+sequence.monospaced.windows-31j=alphabetic,japanese,dingbats,symbol
sequence.dialog.windows-31j=alphabetic,japanese,dingbats,symbol
sequence.dialoginput.windows-31j=alphabetic,japanese,dingbats,symbol
@@ -265,6 +265,11 @@
filename.Courier_New_Italic=COURI.TTF
filename.Courier_New_Bold_Italic=COURBI.TTF
+filename.Consolas=CONSOLA.TTF
+filename.Consolas_Bold=CONSOLAB.TTF
+filename.Consolas_Italic=CONSOLAI.TTF
+filename.Consolas_Bold_Italic=CONSOLAZ.TTF
+
filename.Times_New_Roman=TIMES.TTF
filename.Times_New_Roman_Bold=TIMESBD.TTF
filename.Times_New_Roman_Italic=TIMESI.TTF
@@ -288,6 +293,10 @@
filename.MS_Gothic=MSGOTHIC.TTC
filename.MS_PGothic=MSGOTHIC.TTC
+filename.Meiryo_UI=MEIRYO.TTC
+
+filename.IPAexMincho=ipaexm.ttf
+
filename.Gulim=gulim.TTC
filename.Batang=batang.TTC
filename.GulimChe=gulim.TTC
修正のポイントは次のとおりです。
- MSゴシックをメイリオUIフォントに変更
- MS明朝をIPAex明朝1に変更
- Courier NewをConsolasに変更
- 等幅(monospaced)の表示設定では英字をConsolasで、日本語をメイリオUIで表示させるために優先順位を変更
- メイリオUI、Consolas、IPAex明朝のフォントファイルを指定
この設定後、NetBeansを起動すると次の画面になります。

Javaのフォント設定ファイルサンプル¶
以下に、Windows版Java SEのデフォルトフォント設定から変更したものをいくつか用意しました。
<JDKインストールディレクトリ>\jre\lib\ ディレクトリの下にfontconfig.properties
のファイル名で保存してください。
Windows 10で游ゴシックおよび游明朝を設定してみた¶
Windows 10にJDK 8u60を入れて、NetBeans 8.1 RC2をDarkテーマプラグイン(Dark Nimbus)で立ち上げた際のフォント設定とその画面を次に示します。
- 和文に、Yu GothicとYu Mincho
行間があいてしまってプログラミングには不向きです。

- 和文に、Yu Gothic UIとYu Mincho
まずまずな感じです。

現在、游ゴシックおよび游明朝がWindows 7、8向けにダウンロード提供されていますので、Windows 7以上であれば游ゴシックおよび游明朝を使う設定が可能です。
https://www.microsoft.com/en-us/download/details.aspx?id=49114
ダークテーマへの変更¶
長時間ディスプレイ作業をする場合、デフォルトのテーマである白ベースの表示よりも、暗色ベースの表示の方が目が疲れにくいかもしれません。
NetBeansの標準プラグインサイトには、2つのダーク系ルックアンドフィールが提供されています。
- Dark Look And Feel Themes
- Darcula LAF for NetBeans
Dark Look And Feel Themes¶
NetBeansの全体を暗い背景とするためのプラグイン「Dark Look And Feel Themes」が用意されています。
[ツール]メニュー > [プラグイン]を実行し、「プラグイン」ダイアログを表示し、[使用可能なプラグイン]タブを選択します。
リストの中に、"Dark Look And Feel Themes"を見つけ、チェックを付けます。次の画面に示します。

[インストール]ボタンを押すとプラグインのインストールが始まります。
インストールが完了するとIDEを再起動するか選択を聞かれるので、ここでは再起動をします。

このルックアンドフィールは、Dark Metalと呼ばれるものです。Dark Look And Feel Themesプラグインには2つのルックアンドフィールが格納されています。一つがDark Metalで、もう一つはDark Nimbusです。Dark Nimbusに切り替える場合は、[ツール]メニュー > [オプション] > [外観]ボタン > [ルック・アンド・フィール]タブを選択し、優先ルック・アンド・フィールから"Dark Nimbus"を選択します。

Dark Nimbusルックアンドフィールを選択し再起動すると反映されます。次に画面を示します。

注)Nimbusルック・アンド・フィールのスクロールバーのバグ¶
JDK 8u60で入り込んだバグで、スクロールバーのノブが消失する現象があります。Dark Nimbusルック・アンド・フィールにしたときに、このバグに影響されることがあります。
JDK 8u66以降でFixされています。
Darcula LAF for NetBeans¶
Javaの商用統合開発環境IntelliJ IDEAのダークテーマに似せたDarcula LAF for NetBeansがプラグインとして公開されています。
[ツール]メニュー > [プラグイン]を実行し、「プラグイン」ダイアログを表示し、[使用可能なプラグイン]タブを選択します。
リストの中に、"Darcula LAF for NetBeans"を見つけ、チェックを付けます。
Dark Look and Feelは青みがありますが、Darculaはほぼ黒系です。

- エディタペインの背景画像は口述のitaeditorプラグインを使って表示させています。
背景に画像を表示する¶
NetBeansの編集パネルの背景に画像を表示するプラグイン「ItaEditor」があります。
http://wintermaples.hateblo.jp/entry/2016/02/14/042710
上述ページからnbmファイルをダウンロードします。2016-2-17時点ではwintermaples-itaeditor-1.1.2.nbm
となります。
[ツール]メニュー > [プラグイン] > [ダウンロード済]タブ > [プラグインの追加]ボタンでこのファイルを選択し、インストール欄にチェックが付いているのを確認し[インストール]ボタンを押します。
インストールが完了したら、[ツール]メニュー > [オプション] > [外観] > [背景画像]タブを選択します。

背景画像URIに、画像ファイルへのパスをURI形式で記述します。
Windows OSの場合、ファイルへのパスは、file:/C:/Users/torutk/Pictures/PowerToolsRender_small.png
のように記述します。
Javaのマスコットキャラクター「Duke」
https://duke.kenai.com/
ja.NetBeans.orgのマスコットキャラクター「ねこび~ん」
https://ja.netbeans.org/nekobean/
トラブルシュート¶
ItaEditorプラグインをインストールした後にDarcula LAF for NetBeansプラグインを入れたときに、設定画面の背景色がDarculaとは違って白地になることがありました。先にDarculaをインストールした後にItaEditorを入れたときは問題なく表示できていました。