3

不明なコンテンツがJLabelあり、やりたいことが 2 つあります。

  • ラベルの最大幅または静的幅を設定したいと考えています。テキストがラベルよりも大きい場合は、次のように短くします。

非常に長いラベル

になる

ヴェリル

GUI のコンポーネントで静的な幅を使用するのは悪い考えですか? その場合、代替手段は何ですか?アドバイスをください!

  • ラベルにカーソルを合わせると、全長の文字列を含むツールチップが表示されます。この場合、「Veryl」というラベルの上にカーソルを置くと、「Verylonglabel」というツールチップが表示されます。ただし、短縮されていない場合でも、完全な長さの文字列をツールチップに表示する必要があります。

これらのいずれかで助けていただければ幸いです。

これまでのところ、私は少しいじって、このようなことを試してみましたが成功しませんでした。サイズは特に気にしていないようです。

JLabel label = new JLabel("Verylonglabel");     
label.setSize(15, 5);

よろしく、ヤギ猫

4

3 に答える 3

5

のサイズは、親コンテナーのJLabelによって決まります。詳細については、チュートリアルLayoutManagerを参照してください。

JLabelは、探している動作をすでに持っていることに注意してください

  1. テキストが長すぎる場合、途切れたテキストは "..." に置き換えられます。したがって、あなたの例では、「Verylonglabel」は「Verylo ...」などに置き換えられます。
  2. メソッドを使用しsetToolTipTextてツールチップを指定できます。ツールチップは、JLabel
于 2013-06-26T08:02:41.370 に答える
2

これはあなたが必要とするものです:

JLabel label = new JLabel("Verylonglabel");

// Create tool tip.
label.setToolTipText(label2.getText());

// Set the size of the label
label.setPreferredSize(new Dimension(80,40));// Width, Height
于 2013-06-26T11:06:25.110 に答える
0

setMaximumSizeLayoutManagerコンポーネントの望ましい/最大サイズを尊重する場合にのみ有効です。BoxLayoutとしてチェックアウトすることもできLayoutManagerます。他のいくつかの Swing LayoutManager とは異なりBoxLayout、そのコンポーネントのサイズ設定を尊重します。

これでも、最大サイズとしてどのサイズを設定するかという問題が残ります。幅は、固定値としてターゲットにするものになりますが、高さは、使用されているフォントに合わせて十分大きくする必要があります。高さを柔軟にするために使用するコードを次に示しますが、幅は 50 ピクセルに固定されています。

label.setMaximumSize(new Dimension(10000, 50));

最後に、ツールチップには次のような行で完全なラベル テキストが表示されます。

label.setToolTipText(labelText);
于 2013-06-26T16:22:26.397 に答える