2

こんにちは私は奇妙な質問があります。

Jlabels、TextAreas、および基本的にパネルに配置できるすべてのテキストのユニバーサル設定を行うかどうか、およびその方法を知りたいです。一貫性を保つために、すべてのラベルにフォントサイズを書き込んでいます。ただし、パネルは大きくなっているため、すべてのラベルにフォントサイズをハードコーディングしたくありません。

これが私が使用しているサイズであり、すべてのラベルとテキストエリアで使用したいサイズです。

titlelb.getFont().deriveFont( Font.BOLD, (float) 20.); 
lb1.getFont().deriveFont( Font.PLAIN, (float) 11.);
lb2.getFont().deriveFont( Font.BOLD, (float) 11.);
textArea.setFont( Font.decode( "Arial-PLAIN-11"));

可能であれば、すべてのパネルがこれらの特定のサイズを継承するように普遍的に設定する方法があるのではないかと思っています。ラベルのサイズについてどうすればよいかわからないので、ここにいます。尋ねる。前もって感謝します。

4

3 に答える 3

7

を呼び出すことにより、必要なすべてのコンポーネントのUIManagerでフォントプロパティを変更できますUIManager.put("nameOfFontProperty", new Font(Font.DIALOG, FONT.PLAIN, sizeInPixel));。デフォルトのプロパティのリストはここにあります。

すべてのラベルのフォントを20pxのサイズにする1つの例は次のとおりです。

UIManager.put("Label.font", UIManager.getFont("Label.font").deriveFont(20.0));
SwingUtilities.updateComponentTreeUI(yourJFrame);
于 2012-10-17T18:48:30.660 に答える
4

パネルに固定フォントを使用する JComponent サブクラスのカスタム ラッパー クラスを記述し、コンストラクタにフォント コードを追加します。例えば:

public class JLabelCustom extends JLabel {

    public JLabelCustom(...) {
        super();

        // Font setting code here
        .getFont().deriveFont( Font.BOLD, (float) 20.); 
        .getFont().deriveFont( Font.PLAIN, (float) 11.);
        .getFont().deriveFont( Font.BOLD, (float) 11.);
        this.setFont( Font.decode( "Arial-PLAIN-11"));
    }
}

標準化されたフォントが必要な場合は、カスタム JComponent を使用します。

于 2012-10-17T18:42:28.467 に答える
1

すべてを自動的に設定するサブクラスを作成できます。何かのようなもの'

class UniversalJPanel extends JPanel{
    public UniversalJPanel(){
        super();
        this.setFont(...);
        }
    }

次に、通常の JPanel の代わりにこれを使用できます。JLabel、JTextArea などについても同様です。

于 2012-10-17T18:42:36.790 に答える