2

JCombobox があり、実行時にいくつかの項目を追加しています。それらのいくつかは非常に長く、私の Jcombobox も非常に長く成長しています。BoxLayout (PAGE_AXIS) を持つ JPanel コンテナー内にあります。成長を防ぐ方法がわかりません...「123456789」の場合、コンボボックスのアイテムは「123 ...」のように表示されるような
プロパティが必要なのだろうか。overflow

編集:

私はあなたの答えを読みました、どうもありがとう。しかし、問題は、私の JPanel がサイズを変更できることであり、その子を常に親にする必要があります。JPanelのサイズは実行時に変更される可能性があるため、優先サイズを設定できません。
また、同じ理由で、最大サイズを設定したり、setPrototypeDisplayValue() を使用したりすることもできません。

他のレイアウト (GroupLayout、BorderLayout) を使用しようとしましたが、結果は同じです。

必要に応じてコードを投稿できますが、必要ではないと思います。それでも必要な場合はお知らせください。
JComboboxの代わりに単一行のJTextAreaを試してみました。結果は同じです。タイプすると伸びます。

4

3 に答える 3

5
  • JComboBox.setPrototypeDisplayValue()をオーバーライドして、同様の問題を解決しました

  • 2つの方法があります(@Stasで述べたように)JComboBoxまたはその派生ポップアップ、または両方を一緒にサイズ変更します

于 2012-06-06T09:29:49.840 に答える
3

これを試すことができます:

myCombo.setPreferredSize(new Dimension(myCombo.getHeight(), myCombo.getWidth()))
于 2012-06-06T09:12:42.140 に答える
3

この問題には複数の解決策があります。レイアウトを変更して、成長を制限できます。

または、コンボボックスの最大サイズを何らかの方法で修正します

または、カスタム レンダラー (デフォルト レンダラーを拡張) を追加し、そこで優先サイズを設定します。

于 2012-06-06T09:14:49.033 に答える