問題タブ [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 投票する
2 に答える
7647 参照

java - フォーカスを得たときに JTable のセルで編集を開始する

次の方法で、テーブルの 2 つの列にセル エディターを定義しました。

Java コード:

私が直面している問題は、フォーカスが表のセルに移動したときに、セルが自動的に編集可能にならないことです。そのため、フォーカスが列 2 (エディタとしてテキスト フィールドがある) に移動すると、セルがダブルクリックされるか、ユーザーが入力を開始しない限り、キャレット記号は表示されません。列 1 (エディターとしてコンボ ボックスがある) の場合も同様です。ここでは、セルをクリックしない限りコンボ ボックスは表示されません。これらの動作は直感に反し、キーボードで操作するユーザーにとって望ましくありません.:(

これを解決する方法についての指針を提案してください。

前もって感謝します。

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

java - カスタムJTableセルエディタとセルレンダラーの使用方法

カスタムテーブルレンダリングとカスタムセルエディターを使用してJTableを作成しました。これにより、画像に結果が表示されます。

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

JPanelを拡張した別のクラスを使用して、最初のテーブルセルに表示されるパネルを作成しました。テーブル値を次のように追加します。

そして、これはこのテーブルを作成するための私のテーブルカスタムクラスです。

私の問題は、テキストフィールドに入力したり、チェックボックスを変更したり、ボタンをクリックしたりできないと思ったとおりにパネルが表示されていると考えられます。これを解決する方法を教えてください。

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

java - 値を更新しないダイアログを含む TableCellEditor

JTableユーザーが2番目のテーブルでさらにいくつかの値を編集できるようにするダイアログを開くカスタムセルエディターを使用して書いています。問題は、2 番目のテーブルの変更が最初のテーブルに反映されず、基本的に失われることです。ここで提供されている例をガイドとして使用しました。は次のCellEditorとおりです。

そして、ここにありますSizeClassEditor

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

java - Swing 依存コンポーネントとイベント システム

Swing を使用して Java で複雑な GUI を作成する必要があります (現時点では 80 近くのクラスがあります)。アプリケーションのグラフィック部分は次のように分割されます: 最初の一連のタブ (「管理」、「管理」、「構成」など)、次に第 2 レベル (「ユーザー」、「グループ」、「ゲーム」など) )。今のところ、私は 2 学年 (タブの各レベルに 1 つ) です。次のレベルは、ビジネス オブジェクトを管理する JPanel です (私の GUI 全体は私のビジネス モデルに基づいて構築されています)。このレベルには 2 種類の JPanel があります。 "、"レベル") およびオブジェクト "複合主キー" (たとえば、すべてのユーザーの各ゲーム レベルの二重入力テーブルの形式を表す "User_Game") を管理するもの。タブの第 2 レベルには、複数の JPanel を含めることができます。JPanel が管理する単一のオブジェクトは、JTable と、イベントを配置する 2 つのボタン (追加と削除) で構成されます。そうでない場合は、単純な JTable です。外部キー (「User」の「Group」、「Game」の「Category」または「User_Game」の「Level」など) がある場合、それは JTableModel から直接情報を取得する JComboBox です。JTable オブジェクトを「複合主キー」に管理する場合、列と行もモデルに直接依存します (たとえば、「Game」と「User」「User_Game」)。それぞれに、永続層 (情報については Hibernate) と他の TableModel を処理する独自の JTable モデルがあります。変更 (「ユーザー」の追加、変更、削除など) を管理するには、次のコードを使用します。

そして、次のアクション:

このコードはうまく機能し、データは適切に保持されます。次に、次のコードを追加して依存コンポーネントを更新します。

私のTableModel.fireTableDataChangedはJTableコンテンツを再構築し(super.fireTableDataChangedとfireTableStructureChangedを呼び出します)、JTable.repaintはレンダラーをリセットし、コンボボックス(外部キー)で機能し、ダブルエントリテーブルのタイトルを適切に更新しますが、追加または追加できません複式簿記の列または行を削除します。さらに、わずかな変化があると、レイテンシーが高くなります。

私の質問は簡単です。相互に依存するコンポーネントをどのように管理していますか?

よろしくお願いします。

編集:ここではTableCellEditorの例です。

TableModel の例:

表の例:

理解に役立つことを願っています:/

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

java - JTableセルの値の取得

3列と可変行のこのJTableがあります。ユーザーは任意のセルの値を編集して(セルは選択可能であるため)、Enterキーを押します。「SAVE」を押すと、すべてのセルの値を取得し、それらを1つの文字列に結合し、各セルの値をパイプ(|)で区切ります。例(Col1 | Col1 | Col1 | Col2 | Col2 | Col2 |)これまでのところ、とても良いです。

この文字列変換方法は機能しますが、ユーザーがテーブル内のセルの値を変更しても、コードはJTableのセルのOLD値を取得します。これまで私に従ってください?どうすればこれを改善できるかわかりません。必要な場合に備えて、以下のコードを示します。(私は自分のStringBufferが私が離れることを学ぶべきものであることを理解しています)

読んでくれてありがとう-何かアイデアはありますか?

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

java - RadioButton グループを JTable に追加する

私は出席システムを設計しています。このために、学生をリストし、名前に対して出席をマークするために JTable を使用しています。Jtable列にRadioButtonグループを追加しました。これの私のコードは次のとおりです:-

上記のコードは機能しており、4 番目の列として一連のラジオボタンを取得しています。

デフォルトで RadioButton を「4」として選択し、テーブルに行を動的に追加しています。

私の問題:-

ユーザーがクラス/セクションを選択して学生の出席をマークし、学生のリスト (テーブルの 10 行とします) が上記の RadioButtons パネルで動的に生成されるとします。ユーザーが別のクラス/セクションを選択すると、次の例外がスローされます:-

すべての行が削除され、新しい行が入力されたという事実に関係なく、何らかの形でテーブルがラジオボタンの値を保持し、それを新しいjtableに適用していることを理解している限り(ユーザーが別のセクション/クラスを選択したとき)。また、選択したクラス/セクションの行が以前に選択したクラス/セクション テーブルよりも少ない場合、上記の例外はスローされません。

各クラス/セクション呼び出しで(テーブルモデルデータをリセットしているため)テーブルセルレンダラーまたはテーブルセルエディターをリセットする方法はありますか?

私を助けてください。

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

java - 入力時にJTableのテキストをクリアできますか?

textFieldをExcelJTableのセルのように機能させることはできますか?入力時にテキストをクリアしますが、セルに入るときに編集できます。

この2つの操作は同じイベントになると思います。私が間違っている?

私は使用しようとしますがkeyPressed、何も機能しません。TT-TT

これが私のコードです

なにか提案を?

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

java - JTableにテキストを自動追加

JTableのtextFieldはテキストを自動的に追加できますか?(javaScriptなし)

ユーザーが2桁の数字を入力したとき、またはそのフィールドからフォーカスを失ったときに、「時間」にコロン(:)を自動追加するのと同じです。

いくつかのinvokeLater()、KeyListener()、editCellAt()を使用してみました。フィールドに入ったとき(ダブルクリックしてF2)にのみ機能しますが、クリックして入力しただけでは機能しません。

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

java - Java クラスのサイズはアプリケーションのパフォーマンスに影響しますか?

を使用するスイングベースのアプリケーションを実行していますJTableDefaultCellEditorコンボボックスの選択が必要な列の1つに使用しました。しかし、DefaultCellEditor私が必要としない多くのメソッドがあります。AbstractCellEditorそこで、必要なメソッドのみを実装した場所を拡張してカスタム CellEditor を作成しました。私の質問は

(一般に)クラスがあり、そのクラスのすべてのメソッドを必要としない場合、それを使用しても問題ありませんか、それとも必要なメソッドのみを実装するカスタムクラスを作成するのが良いですか? と

カスタム クラスを使用すると、アプリケーションのパフォーマンス (メモリに関して) が向上しますか、それともすべてのメソッドを持つクラスと同じままですか?

どんな助けでも大歓迎です。

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

java - 簡単で高速な JTree セル エディタ

カスタム TreeModel とカスタム TreeRenderer を持つ JTree があります。ツリー モデルには、さまざまな種類のオブジェクトが多数含まれています。表示されるテキストは、オブジェクトの 2 つのフィールドを連結したものです。セルを編集するときに、これらのフィールドの 1 つを編集したテキストで更新したいと考えています。これまでのところ、私はそれをかなりうまく機能させました。

私の問題: 編集中に表示されるテキストが、実際にはフィールドの 1 つを編集しているだけでも、2 つのフィールドの完全な連結値であると混乱します。そのため、ユーザーが編集を開始したときに、編集中の 1 つのフィールドの内容のみを表示したいと考えています。

カスタムCellEditorでこれをやろうとしましたが、それが機能するはずの方法がわかり、私の場合、アプローチはやり過ぎのようです。多くの場合のいずれかで表示されるテキストを変更したいだけなので、ツリーのコンテンツ全体の CellEditor 全体ではなく、当然それを実装したいと考えています。

これを行うためのより速くて簡単な方法はありますか、それともカスタム エディターを使用する必要がありますか?

ありがとう