• 締切済み

swingアプリで動作時にコンポーネント毎に設定されているデフォルトの

swingアプリで動作時にコンポーネント毎に設定されているデフォルトのフォントを取得したいです。 一部のJLabelの文字やJTextFieldの文字を大きく(小さく)表示したい時、 Fontクラスを使って設定する事になると思いますが、フォント名から指定しなければいけません。 swingのデフォルト値(dialog)であれば決め打ちでいいと思うのですが、変更されていると決め打ちだと浮いてしまいます。 そのため、デフォルト値を取得したいです。

  • Java
  • 回答数1
  • ありがとう数1

みんなの回答

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

これでどうでしょうか。 Font f1, f2; JLabel l = new JLabel("ABC"); f1 = l.getFont(); f2 = f1.deriveFont(f1.getSize2D()+2.0f); //サイズを大きくする l.setFont(f2);

関連するQ&A

  • javaのswingで、JLabelを継承したコンポーネントのインスタ

    javaのswingで、JLabelを継承したコンポーネントのインスタンスから そのコンポーネントが置かれているJAppletインスタンスを取得する方法はありますか?

    • ベストアンサー
    • Java
  • Swingは軽量コンポーネントについて

     今日は、JAVA Swing勉強中の初心者です。  本を読むとAWTは重量コンポーネント、Swingは軽量コンポーネント(一部重量コンポーネントもある)と 書かれていますが、これは一体何を意味するものでしょうか。  読んでても良く分からないのですが、重量コンポーネントはOSに近い所で動作する、軽量コンポーネントはその逆、、、  この内容について、プログラムを組む人間は何に気をつけなければならないのでしょうか。  どうも重量コンポーネントだから動作が重たいとか、遅いとか、メモリの消費が多いとかという解説も 見当たらないし、また、どちらが動作的に速いのか、遅いのか、OSへの負担が大きいのかも書いていません。 (読んでる本が悪すぎるのかも知れないですが。。。。)  だから、AWTを使うときはどのように気をつけなければとか、Swingを書くときにどうしなければならないとかの記述 も、色々と調べてもどの本にも書いていませんが、だから一体何がどうなのでしょうか。    そもそも、重量コンポーネント、軽量コンポーネントとは何を表すもので、だから何がどうなるのでしょうか。  動作的なものについての記述なのでしょうか。  宜しくお願いします。

    • ベストアンサー
    • Java
  • Swing自作コンポーネントをadd出来るように、

    JTextFieldやJButtonなどを一つにまとめたコンポーネントを自作し、それをadd()出来るようにしたいです。frame.add(自作のクラスのインスタンス)を可能にしたいです。 調べて、paintComponent()を使えば良いということはわかったのですが、Graphicsのインスタンス(?)に線を描いたり、円を描いたりする方法はわかりましたが、JButtonやJTextFieldなどをGraphicsのインスタンス(?)に追加する方法はわからず、paintComponent()を使うやり方はできませんでした。 paintComponent()も使わずに、自分のできる方法で、組んだものを一応載せます。 import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; public class MyComponentTest{ public static void main(String[] args){ JFrame frame = new JFrame("タイトル"); frame.setSize(400, 300); frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS)); // 2つのテキストフィールドと一つのボタンを4つ追加する frame.add(new TwoTextFieldsAndOneButton().getContent()); frame.add(new TwoTextFieldsAndOneButton().getContent()); frame.add(new TwoTextFieldsAndOneButton().getContent()); frame.add(new TwoTextFieldsAndOneButton().getContent()); frame.setVisible(true); } } //2つのテキストフィールドと一つのボタンを一つの部品にしたい class TwoTextFieldsAndOneButton{ JTextField textField1 = new JTextField("テキストフィールド1"); JTextField textField2 = new JTextField("テキストフィールド2"); JButton button = new JButton("ボタン"); // こんなメソッドを使わずに、再現したい JPanel getContent(){ JPanel panel = new JPanel(); panel.add(textField1); panel.add(textField2); panel.add(button); return panel; } }

    • ベストアンサー
    • Java
  • エクセル2007 新しいタブのデフォルト設定

    エクセル2007で、新しいタブを作ると、いつも文字の大きさなど設定し直さなければならず面倒くさいです。 デフォルトでフォントやマージンなどを設定できないでしょうか。

  • Excel2000のデフォルトフォントサイズ設定について

    デフォルトフォント設定は、 「ツール」⇒「オプション」⇒「全般」でできるのですが、 テキストボックス内のフォント設定もExcelのデフォルトと同じ設定にしかできないのでしょうか? 何がしないのかというと、 通常のセル内での文字は11ポイント、 テキストボックス内の文字は9ポイントという デフォルト設定にしたいのですが可能でしょうか? いつも全般では11ポイント設定にしていて、 テキストボックスを作る度に9ポイントに変えるのが面倒です。かといってセル内文字を9にはしたくありません。 方法があれば教えてください。 お願いいたします。

  • Becky言語がデフォルト設定になりません。

    Becky言語がデフォルト設定になりません。 パソコンはWindowsXP、Beckyのver.は2.55です。 ツールバーの表示で言語をデフォルトにしても、全般的な設定で言語/フォントをデフォルトに設定しても、Japanese(ISO-2022ーJP)となってしまいます。結果として、わずかですが文字化けします。 常にデフォルトの設定になるためにはどうすればよいのでしょうか。

  • VistaのIE7のデフォルトの設定

    Webページをつくりたくて,勉強しています. 初歩的な質問ですが,おねがいします. XP上でも,Vista上でもなるべくきれいなレイアウトに表示できるよなWebページを作成したいと思っています. ですが,田舎なのでなかなかVistaに触れる機会がなく,Vistaに関する情報が得られません(><; Vista上のIE7のデフォルトの設定について次のことが知りたいです. (1)[インターネットオプション]の[フォント]設定では,デフォルトで[Web ページ フォント]がMSPゴシック,[テキスト形式フォントの設定]がMSゴシックと設定されているのでしょうか?. それともデフォルトではメイリオが設定されているのでしょうか?. (2)[インターネットオプション]-[詳細設定]タブでは,デフォルトでClearTypeが有効になっているのでしょうか?. それとも無効になっているのでしょうか?. (3)VistaのMSゴシック,MSPゴシック,MSUIゴシックの三つのフォントは,(2)のClearTypeが有効になっているとき,XPと違い,フォントサイズにかかわりなく,1バイト文字だけでなく日本語の文字も常にClearTypeが有効になるのでしょうか?(=Vistaに搭載されている,MSゴシック,MSPゴシック,MSUIゴシックは,XPのそれと違って,日本語文字に対しても,フォントサイズにかかわりなくClearType表示ができるものなのでしょうか?). 読みにくい質問ですみません(><; よろしくおねがいいたします.

    • ベストアンサー
    • HTML
  • JTextFieldの大きさ

    すべて記述すると長くなるので、必要なところを抜粋したコードです。 JPanel jpnl1 = new JPanel(new GridLayout(1, 2)); JLabel jlbl = new JLabel("文字列"); JTextField jtf = new JTextField(); Container cont = getContentPane(); jpnl1.setPreferredSize(new Dimension(20, 15)); jpnl1.add(jlbl); jpnl2.add(jtf); cont.add(jpnl1, BorderLayout.CENTER); これで実行(別クラスから呼び出し)すると、JTextFieldの大きさが不必要に大きくなってしまいます(6行目の設定が効かない)。 JTextFieldを自分の思ったようなサイズにすることはできないのでしょうか? 親クラス・・・JFrame 別クラスからは、setBounds(100, 100, 300, 130)として呼び出しています(setVisible(ture)) 環境・・・WindowXP、JDK1.5.09 JRE1.5.09

    • ベストアンサー
    • Java
  • Powerpointのフォントのデフォルト設定

    Microsoft PowerPoint 2016または2019で、 フォントのデフォルト設定の変更方法を、どなたか、教えてはいただけないでしょうか? 今、私のPowerPointでは、デフォルトのスライドを開き、「ホーム」「図形」から 「テキストボックス」を選択すると、18のフォントサイズが選択されます。もちろん、テキストボックスに文字を記入してから保フォントサイズを変更することは簡単ですが、いつも、いつも変更しればならない場合もあります。デフォルトを、18以外に事前に設定したいのですが、マスタースライドなど探したのですが、上手く向付けることが出来ず・・・ どなたか、教えていただけないでしょうか? 依ろsくお願いします。

  • BoxLayout使用時の不具合について

    現在、BoxLayout使用して、画面を整えています。 下記のようにコンポーネントを並ばせようとするため BoxLayoutにX_AXISを指定しています。 [JTextField] [JButton] [JTextField] [JTextField] 設定するとJTextFieldの高さが自動で高くなってしまうのですが、 1つずつデフォルトのサイズに戻すのはめんどうです。 どうにか良い方法はありませんでしょうか。 ご存知の方がいましたらご教授くださいよろしくお願いいたします。

専門家に質問してみよう