問題タブ [tablecelleditor]

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.

0 投票する
1 に答える
1161 参照

java - JTable Cell に JLabel(image) を追加しようとして、 TableCellRenderer で問題が発生しました

ここに私のコードがあります -

これではすべて正常に動作していますが、実際には JTable ウィンドウが開いて JLabel (画像) ベースの Column を直接クリックすると、画像がしばらく消え、テーブルは選択された行を -1 として返します。もう1つのポイントは、行の選択も前の列に制限されていることです。

正確には、テーブルに 4 列があり、Image(JLabel) が列番号 4 にある場合、画像または列 4 を直接クリックすると、3 列目まで行選択が行われ、行選択が -1 として返されます。 . しかし、他の列を選択すると、すべてが適切で正常に動作します。

0 投票する
1 に答える
859 参照

java - JPanel as TableCellEditor が消える

JPanel を表示するカスタム TableCellRenderer を作成しました。JPanel にインタラクティブな要素が含まれている場合、それらも機能するようにしたいので、カスタムの TableCellEditor を作成しました。動作しますが、JPanels をクリックすると奇妙な動作が発生します。クリックすると JPanel が消えることがあります。カスタムレンダラーのみを設定すると、JPanels がインタラクティブでないことを除いて、まったく問題はありません。したがって、問題は TableCellEditor にあるはずです。

編集者:

レンダラー:

メインフォームには次のコードがあります:

0 投票する
2 に答える
1202 参照

java - 追加時に前のエントリを表示するカスタムTableCellEditor

以下の例では、JTableaJListと2つJButtonのs(追加と削除)があります。リストには、追加ボタンをクリックすると、選択した値がテーブルに追加される6つの項目(文字列)があります。
テーブル内の文字列は、カスタムレンダラー(JPanelボタンとラベル付き)を使用して表示されます。ボタンのテキストとラベルのテキストが文字列の値に変更されます。
編集者がエントリを作成するまで、すべてうまくいきます。エディターはボタンをクリックすることを可能にするので、それは必要です。
初めて正しく表示される文字列をテーブルに追加すると、行の高さがパネルの希望の高さに調整され、ボタンとラベルにテキストが設定されます。
行をクリックしてテーブルからエントリを削除し、[削除]ボタンをクリックすると、すべて期待どおりに実行されます。
ここで問題が発生します。テーブルに(異なる)文字列を追加すると、行の高さが高くなり、ラベルとボタンのテキストが設定されません(レンダラーとエディターの両方が呼び出されないため、チェックしました)ブレークポイントを使用)。
もちろん、カスタムレンダラーを使用して新しい行を表示したいのですが、どうすればよいですか?

0 投票する
3 に答える
5023 参照

java - cellchangeでJTableを実行する方法すべてのテキストを選択

私はそれを行ういくつかの例を見ましたが、それでも理解できず、実装することができません。

私がやりたいのはセルの変更(フォーカス)です。次に選択されたセルではすべてのテキストが選択され、ユーザーが完全に変更できるようになります。

それを行う方法についてのアイデアはありますか?

//更新//どういうわけか私は次のクラスを出すことができましたが

この
tblLayers.setDefaultEditor(String.class、new Classes.CellEditor());を実装します。

「まだサポートされていません」という結果は得られません。スローされません..

この問題をどのように解決すればよいですか?

0 投票する
3 に答える
9481 参照

java - TableCellEditor を使用する場合、マウス クリック位置でコンポーネントを取得するにはどうすればよいですか?

表のセルTableCellRendererに複数のカスタムを使用しています。JFormattedTextFieldと同じ部品を使用していTableCellEditorます。ここで、ユーザーがクリックしたものと、このフィールドのどこを知る必要がありJFormattedTextFieldます (で実行できますviewToModel)。

カスタム を使用する場合、マウス クリックからTableCellEditorを取得する唯一の方法は、 のメソッドです。与えられたのは、親の座標系です。PointisCellEditable(EventObject e)CellEditorPoint

anEvent は、呼び出しコンポーネントの座標系にあります。

しかし、クリックした座標でコンポーネントを取得するにはどうすればよいですか? 試してみましfindComponentAt(Point p)たが、戻っnullてきます。

ここに私がテストしたいくつかのコードがあります:

コンポーネントの位置のeditor.getLocation();値は、y 座標にほぼランダムな値を与えます (たとえば、テーブルで 5 行を使用する場合)。

TableCellEditorとを使用しているときにユーザーがクリックしたコンポーネントを取得するにはどうすればよいTableCellRendererですか?


完全な例を次に示します。

0 投票する
1 に答える
1034 参照

java - カスタム TableCellEditor を使用してシングル クリックでテーブル行を選択するにはどうすればよいですか?

JTableカスタムTableCellRendererとカスタムがありますTableCellEditor。デフォルトでは、テーブルの行を最初にクリックするとレンダラーからエディターに切り替わり、2 回目のクリックで行が選択されます。

1回のクリックで行を選択する方法はありますか(そしてエディタに切り替えますか)?

私は使用しようとしました:

私の中getTableCellEditorComponentでは動作しませんが、それを追加するとgetTableCellRendererComponent動作しますが、たまにしか機能しません。

完全な例を次に示します。

0 投票する
2 に答える
754 参照

java - テーブルモデルリスナー

学生記録アプリケーションを作成しています...編集可能な列が必要です。テーブルモデルリスナーをテーブルにアタッチし、その列にすべての更新値を保存しています

table.cellEditAtテーブルモデルイベントを自動的に呼び出し、それが無限ループを生成しています...編集するセルを自動的に選択する他の方法????

0 投票する
1 に答える
649 参照

java - テーブル行が削除されたことをTableCellEditorに通知するにはどうすればよいですか?

いくつかのフィールドと削除ボタンを含むTableCellEditorを実装しようとしています。正常に機能しますが、行が削除されても、削除されたセル(TableCellEditorでレンダリング)のコンテンツは更新されません。

fireTableRowsDeleted(row, row)行が削除されたときにモデル内との両方を呼び出そうとしfireTableDataChanged()ましたが、TableCellEditorに通知されないようです。別の行を選択すると機能し、行インデックスはTableCellRendererで再度レンダリングされます。

削除時にTableCellEditorに通知する方法に関する提案はありますか?

  1. 削除ボタンが押されました

    ここに画像の説明を入力してください

  2. 行は削除されましたが、CellEditorのコンテンツは更新されていません

    ここに画像の説明を入力してください

  3. CellRendererが再度使用されると、行の内容が更新されます。

    ここに画像の説明を入力してください

コードは次のとおりです。

0 投票する
1 に答える
2191 参照

swing - JTableのJSlider

を入れるためJSliderに、私はaとaを実装するJTableamを書きました。0〜100の値で初期化されます。AbstractCellEditorTableCellRendererTableCellEditor

スライダーを最初にクリックすると、最大にジャンプするという奇妙な動作があります。

2番目の奇妙な動作:を追加しましたChangeListener。このリスナーは、最初にスライダーをクリックした場合にのみ呼び出されます。2回目のクリック(値も変更されます)では、このイベントは発生しません。なんで?

0 投票する
2 に答える
1805 参照

java - セルエディタでアクションが呼び出された後、セルは更新されません

セルレンダラーを備えたテーブルを使用しています。このテーブルを使用すると、各セルに値の付いたボタン「x」を配置して、ボタンを押すことでセルの値を削除できます。セルエディタはアクションリスナーをボタンに割り当て、ボタンが押されると適切なアクションが呼び出されます。

DefaultTableModelであるテーブルモデルのすべての列には、値の配列リストが入力されます。ボタンを押すことで配列リストから正しい値を正常に削除でき、変更後にテーブル内の他のすべてのセルが更新されますが、値が削除されたセルは変更されません。アプリケーションを再起動するか、配列リストに値を追加すると、テーブルが期待どおりに更新され、すべてが正常に表示されます。

Moの問題は、セルレンダラーがセルの初期値を忘れないように見えるため、テーブルが再描画されてもこの値をセルに出力し続けることです。値が正しく表示されるようにテーブルを適切に更新する方法を誰かが知っていますか?

テーブルクラス:

セルエディタクラス:

前もって感謝します