0

私は最近、Microsoft Excel と同様に、テキストを折り返すことができ、テキストが折り返されるにつれて行の高さを増やすことができるフィールドが必要であるという問題がありました。私はそれを正しく動作させることができました。唯一の問題は、テーブルに複数の JComboBox が含まれていることです。テキストをラップするフィールドから行の高さが増加すると、JComboBox ウィンドウと ArrowButton のサイズも増加します。JComboBox フィールドに DefaultCellEditor を使用し、JTextArea フィールドで使用する独自のエディター/レンダラーを作成しました。JComboBox の値が選択されると、値がフィールドに正しく表示されます。唯一の問題は、値を選択しているときに、行のサイズによっては JComboBox ウィンドウと ArrowButton が巨大になる可能性があることです。行の高さを増やす方法はありますか、しかし、JComboBox フィールドの高さは、それが入っている列を埋めるために成長するのではなく、同じままですか? デフォルトを使用する代わりに、JComboBox フィールド用のカスタム セル エディタを作成する必要があるかもしれないと考えています。前もって感謝します!

4

2 に答える 2

0

まず、JComboBoxinは?BorderLayoutに設定されていBorderLayout.CENTERますか?もしそうなら、私はそれを別のレイアウトに変更してAbsoluteLayout、セルを埋めるために伸びないようにします。

また、この投稿も参照しますJComboBoxをJTableに配置します

于 2010-09-29T22:58:43.973 に答える
0

デフォルトを使用する代わりに、JComboBoxフィールド用のカスタムセルエディターも作成する必要があるかもしれないと考えています

エディターのサイズはセルのサイズによって決まるため、おそらくそれが解決策になるでしょう。

エディター コンポーネントとして BorderLayout を持つ JPanel を使用してみます。次に、エディターをパネルの北に追加します。

すべてのマウス イベントとキー イベントがエディターに渡されるため、作成するのが最も簡単なエディターです。これは、コンボ ボックスではなく、パネルがイベントを取得することを意味します。したがって、これらのイベントをコンボ ボックスに転送する必要があると思います。

于 2010-09-30T00:03:24.230 に答える