問題タブ [jface]

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 に答える
1355 参照

java - JFaceTreeViewerのちらつき

メソッドを使用して、JFaceTreeViwerの入力を定期的に更新しようとしていますsetInput()。また、私は使用します

ツリーの状態を保存するメソッド。ただし、setInput()呼び出すたびにTreeViewerがちらつきます。ちらつきを防ぐにはどうすればよいですか?

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

java - SWT/JFace RCP アプリケーションで巨大なテーブルにデータを入力する

SWT テーブルに大量の行を表示するにはどうすればよいでしょうか? 巨大とは、20K 行、20 列を超えるものです。なぜそんなに多くのデータを表示する必要があるのか​​ と聞かないでください。それは重要ではありません。ポイントは、エンドユーザーが待って退屈しないように、できるだけ速く動作させる方法です。各行にはオブジェクトのインスタンスが表示され、列はそのプロパティ (一部) です。JFace コンテンツ/ラベル プロバイダー パターンを使用することを考えましたが、テーブルにデータを直接ヒットするよりもさらに遅くなるのではないかと心配しています。これはそれがどのようになるかです:

私のコンピューターで 20,000 レコードを描画するには、約 20 秒かかります。私が Windows で見た最大のパフォーマンスの問題は、新しいテーブル項目が作成され、テキストが取り込まれたときに、SWT によって送信される信じられないほどの量のネイティブ ウィンドウ メッセージによって引き起こされます。これに対する優れた回避策を見つけました-データを入力する前にテーブルを非表示にし、完了したら表示します。ループの前に table.setVisible(false) を呼び出し、ループの後に table.setVisible(true) を呼び出すだけで、速度が 6 ~ 7 倍になります。

もっとスピードアップしたい。あなたは何を提案しますか?また、ウィジェットを非表示にするこのトリックが、SWT (別名 Linux) の Windows 以外の実装でどのように機能するのだろうか?

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

eclipse - TableViewer、最初の並べ替え順序を定義してもデータには影響しません

実際には、通常どおりテーブルビューアーを作成しますが、最初は、並べ替え用に定義された列に従ってすべての行を並べ替えるわけではありません。

私が使用しているコード:

列 #4 を手動でクリックした後にのみ、正しい順序を取得します。それ以外の場合は、ViewContentProvider にリンクされたオブジェクト リストの「挿入順序」に正確に従います。助けてくれますか?TNX

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

eclipse - 遅延および遅延 TreeViewer に関する質問

実際には2つの質問がありますが、それらは一種の関連性があるため、ここでは1つにします...

TreeViewer( SWT.VIRTUAL) とを使用して現在表示されていないツリー ノードのガベージ コレクションを確実に行う方法はILazeTreeContentProvider? ノードに 5000 の子がある場合、それらがビューアーによって表示されると決して手放されないため、ツリーに多数のノードとリーフがあり、十分なヒープ サイズがない場合、メモリ不足エラーが発生します。大量のデータ (数十万または数百万のオブジェクト) を持つツリービューアーを保持している閉じられていないビューによって引き起こされるメモリ リークを回避するためのベスト プラクティスはありますか? おそらく、ビューアー/コンテンツ プロバイダー要素をより柔軟に使用できるコールバック インターフェイスがいくつかあるのではないでしょうか?

単一の( ) に対して、deffered ( DeferredTreeContentManager) と lazy ( ILazyTreeContentProvider) の読み込みを組み合わせることは可能ですか? 例と API を見て理解した限りでは、特定の時点でどちらか一方しか使用できず、両方を組み合わせて使用​​することはできません。たとえば、特定のノードの可視の子のみをフェッチし、Job を使用して別のスレッドでそれらをフェッチします。 API。私を悩ませているのは、遅延アプローチがすべての子をロードすることです。別のスレッドではありますが、一度に最小限のサブセットのみが表示される場合でも、すべての要素をロードします。TreeViewerSWT.VIRTUAL

必要に応じて、質問にコード例を提供できます...

私は現在それらに苦労しているので、その間に何かを思い付くことができれば、ここで喜んで共有します.

ありがとう!

よろしく、 スヴィレン

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

eclipse - ILazyTreeContentProvider で並べ替えとフィルタリングを使用するより良い方法はありますか

どうやら、ILazyTree(TreePath)ContentProvider並べ替えとフィルタリングの使用が でサポートされていない場合TreeViewersViewerFiltersそのため、 TreeView にorを設定Sorters/Comparatorsしても何の役にも立ちません。おそらくこれは、現時点で見えていない要素も含めて、すべての要素を把握していないことに関係しています。

このステートメントをサポートするために、org.eclipse.jface.viewers.TreeViewerクラスからの javadoc の抜粋を次に示します。

コンテンツ プロバイダが ILazyTreeContentProviderまたは の ILazyTreePathContentProvider場合、基になるツリーは {@link SWT#VIRTUAL} スタイル ビットを使用して作成する必要があり、ツリー ビューアは並べ替えやフィルタリングをサポートしません。{@link #setUseHashlookup を呼び出してハッシュ ルックアップを有効にする必要があります。 (ブール値)}.

現時点で唯一の解決策は、すでに注文されている各ノードの子を取得することです。動的な並べ替えが必要な場合、つまり、実行時に降順または昇順で並べ替え順序を切り替えることができるようにする必要がある場合は、独自の解決策を考え出す必要があります。たとえば、子の入力および更新時に並べ替えのブール フラグを監視します。

おそらくより良い解決策、おそらくより多くのjface APIを含むことに気づいていますか?

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

java - Eclipse 3.4 用の jface データバインディング フレームワークの良い例とドキュメントはありますか?

公式サイトは非常に少なく、ほとんどの例は EMF 関連で Eclipse 3.5 用です。私は Tree Viewer の例に特に興味がありますが、良い例とドキュメントは常に高く評価されています。

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

eclipse-rcp - Eclipsev3.3のJFaceTableViewerにリッチテキストを挿入する

3.5以降で利用可能ですが、StyledCellLabelProvider残念ながら、v3.3を使用する必要があるプラットフォームに固定されています。JFaceのフィールドにリッチテキストを表示する方法を誰かが言うことができますTableViewerか?

それも可能ですか?

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

java - JFace TableViewer - 他のセルに応じてセルをフォーマットする

私は JFace TableViewer を持っています。通常、1 つの列の値は一意である必要がありますが、そうでないことが理にかなっている場合もあります (行がコピーされ、まだ変更されていない場合など)。ただし、その列に重複する値を含む行を強調表示して、重複する値をユーザーに警告したいと思います。これを行う最善の方法は何ですか?LabelProvider は、現在のセルまたはせいぜい現在の行にしかアクセスできないようです。

ありがとう、トーマス

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

java - プラグインを作成しないと、Eclipse で JFace と SWT を使用できません

免責事項

これは、.NET GUI が Java を回避しようとする典型的なケースです。

問題の説明:

JFace と SWT を使用して非常に単純な GUI を構築しようとしています。コードは単純です (チュートリアルがたくさんあります)。それほど単純ではないのは、JFace と SWT をプラグイン プロジェクトの外で動作させることができないように見えることです。

CLASSPATH に "C:/eclipse 3.5/plugins" を入れているので、プロジェクトで JFace と SWT を問題なく使用できると期待しています (私のコンピューターから --> プロパティ --> 高度な --> 環境変数)。そして、この記事の「SWT と JFace のインストール」ボックスに示されているように、PATH にあるすべての swt-*.dll (確かに、ローカル ユーザー パスとグローバル パスの両方) を見つけることができます。

問題は、ビルドパスからjarを直接参照しない限り、eclipse.orgから何もインポートできないことです->ライブラリ->外部jarを追加します(ビルドするには、次のjarを追加する必要があります:org.eclipse.swt .win32.win32.x86_3.5.1.v3555a.jarorg.eclipse.jface_3.5.1.M20090826-0800.jar )。これを行うと問題なくビルドできますが、「Java アプリケーション」として実行すると、次のエラーが発生します (別の方法で実行する必要がありますか?)。

ApplicationWindowこれをデバッグしようとしましたが、基本的に、クラス (org.eclipse.jface.window.ApplicationWindow)をインスタンス化しようとするとすぐにスローされます。エラーを再現しようとして、すべてのコードをコメントアウトし、メインで次のように置き換えたところ、最初の行で上記と同じエラーがスローされました。

質問:

質問 1 : 上記のエラーを修正して (何が起こっているのか理解したいのですが) どうすれば実行できるようになりますか?

質問 2 : プロジェクトで jar が表示されないのはなぜですか?また、その作成方法は?

Java と Eclipse に慣れていないため、非常に些細なことを見落としている可能性があります。どんな助けでも大歓迎です!

編集:他の誰かが同じ問題を抱えているようです-> http://www.eclipsezone.com/eclipse/forums/t60528.html -彼らがどのように解決したかははっきりしていませんが、支援をお願いします

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

eclipse - Eclipse:テーブルの列の画像が透明かどうか?

Eclipseテーブルセルで自分の画像を描画し始めると、そのテーブルセルを強調表示すると、奇妙な強調表示色になります。自分で見て:

代替テキスト

最初の列のように透明度は実際には保持されますが、ハイライトブルーは本来の青ではありません。これは私のせいですか、それともEclipseのせいですか?

コードスニペットは次のとおりです。