0

JOptionPanesのテキストは非常に小さいので、ペイン内のテキストのフォントをどのように変更できるのか疑問に思いました。また、2つのボタンの間にスペースを設定したいと思います。

何かのようなもの

   |Canecl|               |DoneSave| |Save|
4

2 に答える 2

4

JButtonの中にあるフォントJOptionPaneが小さすぎるということだと思います。

そのためには、 DarrylBurkeのSwingUtilsを使用することをお勧めします。今、あなたは簡単に例えばすることができます

for (JButton button : SwingUtils.getDescendantsOfType(JButton.class, pane)) {
    button.setFont(new Font("Verdana", Font.BOLD, 32));
}

ペインJButton内のすべてのフォントを設定します。JOptionPane

JOptionPaneメッセージ自体のフォントを設定する場合は、たとえば

UIManager.put(
    "OptionPane.messageFont",
    new FontUIResource(new Font("Verdana", Font.BOLD, 32))
);

「ボタンの間隔」の質問に関して:それが拡張せずに実行できるかどうか、JOptionPane自分でカスタマイズできるかどうかはわかりません。

于 2009-11-20T19:08:49.433 に答える
0

(OPの質問によると)3つのうち2つのボタン間の間隔を指定することはできませんが、すべてのボタン間の間隔のサイズを大きくすることはできます。

JPanel buttonPanel                     = (JPanel) myOptionPane.getComponent(1);   
BasicOptionPaneUI.ButtonAreaLayout lm2 = (BasicOptionPaneUI.ButtonAreaLayout) buttonPanel.getLayout();
lm2.setPadding(20);
lm2.setSyncAllWidths(false);     // buttons will vary in size as needed.

またはおそらく次のようなもの:

lm2.setPadding(lm2.getPadding() * 2)  // double the spacing between ALL buttons.

ボタンが2つしかない場合は、これらのLayoutManager呼び出しを使用して、目的の結果を得ることができます。

ただし、ボタン間のサイズが異なる場合は、JPanelのレイアウトを自分で制御する独自のJDialogを実装する必要があります。

JOptionPaneは2つのJPanelで構成されています...1つはメッセージ(およびアイコン)自体用で、もう1つはボタン用です。そのため、上記のgetComponent(1)を使用します。

質問が4歳であることは知っていますが、今日同様のニーズがあり、Stackオーバーフローやその他の場所で答えが見つからなかったため、この答えを出しました。

于 2015-09-17T10:03:53.810 に答える