0

カスタムエディターとレンダラーを備えた JTable があります。テーブルモデルもあります。ユーザーが特定の列のセルをクリックしたときに、特別な入力ウィンドウをインスタンス化したいと考えています。isCellEditable() でロジックを記述しましたが、問題は、その特定の列のセルをクリックすると、入力ウィンドウがポップアップし、すべてが正常に機能するまで値を入力することです。しかし、ヘッダーをドラッグして列の位置をシフトしようとすると、再び isCellEditable() が呼び出され、ユーザーがその特定の列のセルをクリックしなくても、ウィンドウがポップアップします。ユーザーのクリックと列のドラッグを区別する方法を教えてください。

よろしくクリシュナ

4

1 に答える 1

0

質問に対する答えを見つけることができませんでしたが、目的は解決しました。クラスで複雑なウィンドウをインスタンス化するすべてのロジックを記述しました: CustomCellRenderer 、 getTableCellEditorComponent()。私の CustomCellRenderer は DefaultCellEditor を拡張します。私が行っていた唯一の間違いは、ロジックでテーブル モデルの setValueAt() を呼び出したことです。後で、 getTableCellEditorComponent() 自体でコンポーネントの値を設定するオプションがあることがわかりました。後で同じコンポーネントが返されます。

于 2011-01-12T07:15:48.460 に答える