0

レイアウトをnullに設定して作業しています。縦横比のあるJFrameがあり、サイズ変更中、このフレームは同じ縦横比を維持します。

フレームのサイズを変更するたびに、すべてのコンポーネントのサイズを JLabel で 1 つだけ問題なく変更します。

JLabel の境界のサイズを変更しても、テキストは新しい境界に合わせて増加せず、テキストは同じサイズのままです。

フォントサイズを毎回設定して解決しようとしているのですが難しそうです。

それを達成する方法はありますか?

4

1 に答える 1

2

縦横比を維持できる特定のレイアウトで作業してみましたか? GridbagLayoutなど?GridBagLayout や SpringLayout などの適切なレイアウトを使用する

例: コンテナ contentPane = jframe.getContentPane(); contentPane.setLayout ( new GridBagLayout() );

// xywh wtx wty アンカー フィル TLBR padx pady contentPane.add( myPanel, new GridBagConstraints( 0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets( 10, 10, 10, 5 ) , 0, 0 ) ); contentPane.add( myPanel2, new GridBagConstraints( 1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.BOTH, new Insets( 10, 5, 10, 10 ), 0, 0 ) );

ラベルなども拡張してほしい。うーん、これを自動的に行うものは知りません。コンポーネントの一部を拡張して、レイアウトからヒントを得て、適切にサイズを変更できます。たとえば、ウィンドウのサイズを変更したために使用できる余白が増えたと判断した場合は、フォントを拡大することを選択できます。ラベルに対してこれを行う既存のコンポーネントを知りません。プロポーショナル フォントは、これを正しく行うには少し注意が必要です。実際、記憶が正しければ、私はかつて似たようなことをしたことがあります。プログラム的には「試行錯誤」のようなものでした。画面の外では、推定フォント サイズで文字列を描画し、必要な余白で割り当てられたスペースに収まるまで再描画します。確かに、これらのダイナミック ラベルの見栄えを良くするのは大変なことのように思えます。

于 2014-04-27T17:31:01.433 に答える