2012-02-20 10 views
2

ボタンを表示する別のカスタムセルレンダラーを使用して、内部に入れ子になったJListを表示するJList用のカスタムセルレンダラーがあります。私が抱えている問題は、ユーザーの入力(たとえば、マウスのボタンのスクロール操作)が処理されず、ネストされたJListが応答しなくなることです(しかし、ウィンドウのサイズを変更するたびに正しくペイントされます)。この問題を解決する方法はありますか?JList内のJListでの入力イベント処理の問題

+2

レンダラーは実際のコンポーネントではなく、単にコンポーネントのイメージをペイントするので、正しいです。ユーザーイベントを受け取らないようにします。 – camickr

+0

@camickr情報ありがとうございます。次に、キーボード/マウスイベントをネストしたJListにリレーすることは可能ですか? – JosephH

答えて

3

と同じように、レンダラーはイメージを塗るだけで実際のコンポーネントではないと言いました。

これを回避する方法の1つは、CellEditorsを設定できるJListの代わりに、単一列のJTableを使用することです。です。

ListModelのListDataイベントをリッスンし、必要に応じてコンポーネントを追加および削除するスクロールペインを使用してパネルを作成するほうが簡単かもしれません。それが私がこの問題を抱えていた最後の時に終わったことです。もう少しエレガントでした。

ボタンが1つだけの場合でも、JTableは非常にうまく動作します。