6

Swingアプリのすべてのコンポーネントのフォントサイズをプログラムで変更できる必要があります。Nimbusルックアンドフィールを使用しているため、通常の方法(UIManagerまたはputClientPropertyを使用)でこれを行うことはできません。そのため、次の方法を使用して、アプリの各コンポーネントのフォントサイズを個別に増やしています...

private void enlargeFont(java.awt.Component c, float factor) {
    c.setFont(c.getFont().deriveFont(c.getFont().getSize() * factor));
}

私が抱えている問題は、JPanelでTitledBorderを使用していて、(予想通り)JPanelを上記のメソッドに渡してもJPanelの境界線のタイトルのサイズが変更されないことです。

では、境界線のフォントサイズを変更する方法はありますか?(境界線のテキストを取得できれば、(より大きなフォントを使用して)新しいTitledBorderを作成し、JPanelのsetBorder()メソッドを使用して適用できます...しかし、境界線のテキストを取得することはできないようです。 (?)。

誰かが解決する方法について何か提案がありますか?

4

1 に答える 1

14

以下は私のために働いた:

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    ((javax.swing.border.TitledBorder) jPanel1.getBorder()).
        setTitleFont(new Font("Arial", Font.ITALIC, 14));

    jPanel1.repaint();
}

これをNetBeans6.9.1でテストしましたここに画像の説明を入力してください

于 2013-03-07T00:19:48.593 に答える