[解決済み] JLabelのフォントを最大サイズに変更する方法
2023-06-14 11:33:50
質問
私は
JLabel
をコンテナで表示します。
フォントのデフォルトサイズは非常に小さいです。
私は
JLabel
のテキストが最大サイズになるようにしたいです。
どうすればいいのでしょうか?
どのように解決するのですか?
きれいなコードではありませんが、次のコードは
JLabel
と呼ばれる
label
のように、中のテキストがラベルからはみ出さないように、できるだけ内側に収まるようにします。
Font labelFont = label.getFont();
String labelText = label.getText();
int stringWidth = label.getFontMetrics(labelFont).stringWidth(labelText);
int componentWidth = label.getWidth();
// Find out how much the font can grow in width.
double widthRatio = (double)componentWidth / (double)stringWidth;
int newFontSize = (int)(labelFont.getSize() * widthRatio);
int componentHeight = label.getHeight();
// Pick a new font size so it will not be larger than the height of label.
int fontSizeToUse = Math.min(newFontSize, componentHeight);
// Set the label's font size to the newly determined size.
label.setFont(new Font(labelFont.getName(), Font.PLAIN, fontSizeToUse));
基本的に、このコードは
JLabel
が占めるスペースを調べます。
FontMetrics
オブジェクトのテキストをオーバーフローさせずに使用できる最大のフォントサイズを決定し、その情報を使って
JLabel
.
上記のコードは、おそらく
paint
メソッドに挿入できます。
JFrame
を保持する
JLabel
またはフォントサイズを変更する必要があるときに呼び出されるいくつかのメソッドです。
以下は、上記のコードを実行したときのスクリーンショットです。
(ソース
coobird.net
)
関連
-
SLF4J: クラス・パスに複数のSLF4Jバインディングが含まれています。
-
org.xml.sax.SAXParseExceptionのエラー解決方法
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] JUnit 4のテストで、ある例外が投げられたことをどのように断言しますか?
-
[解決済み] Javaで文字列を分割する方法
-
[解決済み] なぜゲッターとセッター/アクセッサーを使うのですか?
-
[解決済み] 同じフォントに対して複数のフォントファイルを追加する方法を教えてください。
-
[解決済み】iPhoneアプリケーションにカスタムフォントを埋め込むことはできますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
アクセス制限です。タイプ 'Application' は API ではない(必要なライブラリに制限がある)。
-
型に解決できない エラー解決
-
Java の switch case 文で必要な定数式の問題の解決法
-
Jsoup-Crawlingの動作
-
unsigned char* から const jbyte* {aka const signed char*} への変換が無効です。
-
SocketException java.netの4つの例外解決策。
-
maven レポート エラー 解決不可能な親POM
-
API の戻り値を処理するために ResponseEntity を使用する
-
Java基礎編 - オブジェクト指向
-
CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。