問題タブ [treetablecelleditor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - カスタム コンポーネントの JTree カスタム セル エディタが最初のクリックに応答しない
ユーザーのファイルシステムをツリーで表示する Java アプリがあります。チェックボックス、アイコン、テキストを含むフォルダーを表示します。これを行うには、ツリー セル用のカスタム コンポーネントを作成する必要がありました。コンポーネントは JLabel をサブクラス化し、JCheckBox と JLabel を含みます。コンポーネントを表示および編集するために、独自のレンダラーとエディターを作成しました。初めて編集モードに入ったときにチェックボックスをクリックすると、編集をオフにするコードは実行されません。チェックボックスの後続のすべてのクリックは正しく機能します。私は多くの検索を行いましたが、この問題を解決できません。
これが私のレンダラーとエディターのコードです。ツリーは編集できるように設定されており、レンダラーとエディターが設定されています。
javafx-2 - テーブル ビュー セル エディター: テキスト ボックス フォーカス リスナーで commitEdit を呼び出せません
javafx2 を使用して、セル エディターでテーブル ビューを作成しました。セルを編集するには、テキストボックスを作成し、フォーカスリスナーを作成してセルの変更を見つけました。テーブル ビューの変更を更新するために CommitEdit() メソッドを呼び出しましたが、テーブルは更新されませんが、SetOnKeyReleased() では機能していますか?
表のセルをコミットするために使用したリスナー コード:
java - JTable セルの選択を失う
JTable セルをクリックすると、行が「選択」されます。他のものをクリックすると、選択が解除されるようにしたいです。
テーブル上でマウスリスナーを使用してこれを行うことを考えていますが、認識方法がわかりません(テーブルではなくクリックします)。何か案は?
これは私がしようとしているものです:
しかし、最初の列をクリックしたときにのみクリックが印刷され、テーブルではないものをクリックしたときは印刷されません。
そのイベントを認識したら、次のメソッドを呼び出します。
javafx-8 - TreeTableView は親行のセルを無効にします
treetableviewの親行で編集可能なセルを無効にするにはどうすればよいですか? 写真を見て、サンプルコードを確認してください。行が展開可能な場合、すぐに編集可能な行を無効にしたい(ルート行またはサブルート行)
**コード例**
それを実行して、ルート項目をダブルクリックするだけです
make-individual-cell-editable-in-javafx-tableview テーブルビューで はソリューションが機能することを確認しましたが、ツリーテールビューでは機能しません。
java - スイング中のツリーテーブルの選択されたノードを取得するには?
ここで利用可能なチュートリアルを参照して、スイングでツリーテーブルを実装しました 。メッセージの下にメッセージオブジェクトまたはフィールドオブジェクトが表示される2つの列があります。ノードがフィールドの場合、その値は 2 番目の列に表示されます。値がコレクションである 2 番目の列にセル レンダラーを正常に追加し、セルにコンボ ボックスを追加すると、必要なデータを表示できます。セルエディターを追加すると問題が発生します。以下は私のセルエディタです。
セル エディターのコンストラクターで、以下のコードを追加して、ツリー テーブルの選択された行の現在選択されているノードを取得しようとしました。しかし、「getPathForRow」関数がツリー テーブルをサポートしていないため、入力したコードは機能しません。
これは私が使用しているテーブル モデルです。
現在選択されているフィールドを取得して、エディターで変更された値を編集できるように、ツリー テーブルの選択されたノードを取得する必要があります。コードのどこが間違っているのか誰か教えてください。このツリー テーブルの現在選択されているノードを取得する正しい方法は何ですか。
java - TableCellEditor と TableCellRenderer に 1 つのクラスを使用する
と の両方として機能する 1 つのクラスを使用することについて、合理的な長所と短所はTableCellEditor
ありTableCellRenderer
ますか? 好みや「どちらの方法がより人気があるか」を尋ねているのではなく、そのデザインに固有の問題があるかどうかを尋ねているのではありません (おそらく混乱すること以外に)。
編集 1:さらに、1 つのクラスをレンダラーとエディターの両方にするか、単に同じ Java ファイルにレンダラーとエディターの両方のクラスを含めるかを選択する際に、パフォーマンス上の懸念はありますか?
1 つのオブジェクトが同時にエディターとレンダラーの両方の帽子をかぶっているのは奇妙に思えますが、奇妙さだけでは、このパターンを追求しない理由にはなりません。