問題タブ [tableviewer]
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 - JFace テーブル セルに画像を配置すると、画像のギャップが最初の列に表示される
JFaceテーブルの任意の列に画像を追加すると、最初の列も画像が含まれているように動作し、テキストはその画像のサイズでインデントされます。
これは、それを生成するために必要なコードで私の要点を示すスクリーンショットです。それは本当に私の芯にかかっているので、これが起こらないようにする方法はありますか?
よろしく、
グレン×
java - tableviewerをロードするSWT/Jface Treeviewer
私は小さなアプリケーションを開発しています。項目をクリックした後にテーブル ビューアーにデータをロードする必要があるシナリオの 1 つに行き詰まっていTreeViewer
ます。この問題を処理する方法を教えてください。
java - SWT - TableViewer で EditingSupport を使用する
メインのダイアログには、JFace TableViewer があります。テーブルの最後の列は ComboBoxCellEditor です。いいえ、はい、両方のオプションがあります。これはすべて設計どおりに機能します。
しかし、ここに私の問題があります。
- ユーザーが値として両方を選択した場合。
- 配列から現在の行データを取得するメソッドを実行する必要があります
- 値を両方からいいえに変更します
- データのコピーを作成し、値を「はい」に変更します
- 両方を配列に追加し直します
- テーブルを更新する
テーブルの例
から -
に -
両方を選択した後、メソッドを実行して残りを実行する方法を理解しようとしています。私はそれがある種のリスナーでなければならないと仮定しています。私の EditingSupport コードを見て、メソッドを開始して残りを実行する場所を示してください。
java - ComboBox を使用して行のインデックス値を取得する
私のテーブルの行の 1 つは ComboBox です。「はい」、「いいえ」、「両方」のいずれかを選択できます。「両方」を選択した場合、テーブルを構築しているデータ配列に変更を加え、テーブルを更新する必要があります。以前の投稿で、Both の else ステートメントでロジックを構築することが提案されました。
上記のコードはクラス OptionEditingSupport にあります。
テーブルは AplotBaseDailog クラスにあります。
そのため、OptionEditingSupport クラスでは、AplotBaseDailog クラスをインポートして割り当てました。
次に、Both に変更した列の行インデックスを取得するメソッドを AplotBaseDailog クラスに記述しました。配列からデータを取得するには、インデックス値が必要です。
次に、行のインデックスを dataModel クラスのメソッドに渡します。データ配列を持つ dataModel クラスにあります。
ここで車輪を再発明していると思います。このプロセスを行うためのより良い方法が必要です。現在、すべてのコードが配置されているため、AplotBaseDialog を呼び出す行で Null Pointer Error が発生しています。
OptionEditingSupport クラスでインデックスを取得できますか?
java - スレッドの問題の可能性はありますか?
2 つのクラスがあります。1 つのクラスはデータモデル クラスで、もう 1 つは gui クラスです。
クラスデータモデル........
ユーザーが選択したデータを受け取り、配列リストを作成します
クラス GUI .........
datamodel クラスの配列を使用している tableviewer がある
私の問題は、ユーザーが配列にデータを追加したときにテーブルビューアーを更新する必要があることです。
gui クラスに updateTableViewer メソッドを作成しました。
次に、datamodel クラスで gui クラスへの参照を作成しました。
次に、配列にデータを追加するメソッドにメソッド呼び出しを追加しました
これは動作しません。gui クラスが作成されて開いている場合でも、getViewer() 呼び出しは常に null を返します。
したがって、ブール値を作成します。
テーブルビューアーが作成された後、値をtrueに設定しています。
次に、ブール値を返すメソッドを作成しました。
ダイログのボタンからメソッドを呼び出しています。また、datamodel クラスの updateTableViewer メソッド呼び出しを置き換えました
これが結果です。
datamodel クラスで add メソッドを実行します - false を返します - この時点ではダイログが作成されていないため、これは理にかなっています
GUI クラスを実行して作成します。ボタンをクリックすると、true が返されます。ビューアが作成されているため、これは理にかなっています。
ここで私は混乱します。GUI を開いたまま add メソッドを再度実行すると、依然として false 値が返されます。次に、ボタンをクリックして、それが真の値であることを確認できます。
GUIが作成され、ブール値がtrueに設定されていると思います。他のクラスのブール値の現在の値を取得できます。
GUIクラスを正しく参照していないのか、GUIが作成されたときに現在のスレッドまたはテーブルビューアーにアクセスしていないのかわかりませんか?
これがスレッドの問題なのか、GUI から現在の値を正しく取得していないのかはわかりません。
これは現在、私のアプリケーションの大きな問題です。新しいデータが配列に追加されるたびに、テーブルビューアーを更新できる必要があります。新しいデータを選択するたびにユーザーがテーブルを手動で更新する必要はありません
java - 入力オブジェクトを変更するときのTableViewerの再描画が遅い
私のプロジェクトには、TableViewer
データベースからの約1,000行のデータを表示するがあります。ContentProvider
ですArrayContentProvider
。_
リスト(オブジェクトsetInput()
上TableViewer
)の入力を同じ量のデータを持つ別のリストに変更すると、すべて問題ありません。List<T>
しかし、前のものとは異なるサイズで更新したい場合、同じ量のデータで変更した場合の約10倍の時間でアプリケーションがフリーズします。
最初のリストのサイズは1kで、2番目のリストのサイズは約960です。実行はsetInput()
メソッドで直接フリーズします。
なぜこれが起こるのか誰かが知っていますか?
java - テーブルセルボタンからダイアログボックスを開く
ユーザーが自分のテーブルのファイル名の値を編集できるようにする必要があります。そのため、テーブルビューアで、最後の列に編集ボタンを作成して表示するコードを追加しました。私はこれを機能させています。
編集ボタンをクリックすると、保存とキャンセルのボタンが付いたテキストボックスにファイル名が表示されたダイアログボックスが開きます。
そこで、FileNameDialogクラスを作成しました。
私の質問は、ダイアログをどこで作成するかです。
- ベースダイアログでメソッドを作成し、テーブルビューアからメソッドを呼び出しますか?
- テーブルビューアでメソッドを作成し、そこでダイアログを作成するだけですか?
テーブルビューアのボタンクリックからダイアログを開くための最良の手順は何ですか?
java - SWT を使用してテーブル値をテキスト フィールドに選択しますか?
値を持つs を含むTable
( TableViewer
) がTableItem
あります。TextField
テーブルの列名に従ってマップされた別のクラスがあります。
私の質問は次のとおりです。テーブル内の任意の行を選択すると、その行の値がテキスト フィールドに反映されるはずです。テキストフィールドでは、これらの値を編集してテーブルに保存できます。どうすればこれを達成できるか教えてください。
java - 列に表示されるテキストがセルの正しい場所に表示されていません
テーブルの最初の列では、表示された値が左端からオフセットされています。
例
ItemId値と比較した日付値のオフセットに注意してください
上記のコードを見ると、なぜそれらが違いになるのかわかりませんか?