問題タブ [swingx]

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 投票する
3 に答える
115 参照

java - JFrame を介した Veil LoadingImage または LoadingPanel

Swing(X) に、長いバックグラウンド処理中にパネルまたはフレームにベールの読み込み画像を配置して透明にするコンポーネントはありますか?

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

java - タブを切り替えると JXMultiSplitPane がおかしくなる

JXMultiSplitPane(SwingX 1.6.2 から) を使用して、3 ペインの水平インターフェイスを実装しています。中央のペインにはJTabbedPane2 つのタブがあります。1 つはMarkdown コードの入力に使用される (もちろんJTextArea内の) で、もう 1 つはレンダリングされた HTML プレビューを表示するための (スクロール ペイン内) です。ユーザーがプレビュー ペインに切り替えると、エディター内のテキストが処理され、プレビュー ペインに表示されます。JScrollPaneJEditorPane

私の問題は、エディターに長い行でテキストを入力してからプレビューに切り替えると、中央のペインが拡大することです。ほんの少しだけの場合もあれば、実際の画面よりも多くのスペースを占める場合もあります。しかし、サイズ変更ハンドルの 1 つを手動で移動すると、すべてが所定の位置に戻ります。

これが発生する前にこれに対処する方法は2つしかありません。

  1. テキストを入力する前に、いずれかのペインのサイズを手動で変更します。
  2. MultiSplitLayout モデルで、中央のペインに 1 の重みを付けます。

デフォルトでは、中央のペインを拡大してほぼウィンドウ全体を占めるため、2番目のものは使用できません。

これを修正する方法はありますか?

アップデート

もう少しテストした後、手法 (2) でさえサイズを一定に保ちません。2 つのタブを切り替えると、中央のペインのサイズがわずかに変わります。

問題の一部はタブ付きペインにあると考えています。JTextAreaとはJEditorPane同じサイズではなく、JTabbedPaneそれらを切り替えるとサイズが変更されます (JEditorPane毎回テキストをリセットしているためです。JXMultiSplitPaneユーザーが強制的に手動でサイズ変更することにより、特定のサイズ。

したがって、サイズを固定することで問題を解決できるはずですがJTabbedPane、ハンドルバーでサイズを変更することもできます。それを行うためのヒントはありますか?

0 投票する
0 に答える
491 参照

java - MatchingTextHighlighterでJXTableを使用しているときに誤った強調表示

基本的な質問:

TableColumnの幅を変更している間、メソッド SwingUtilities.layoutCompoundLabel(..)はパラメーターRectangle textRを古い値(または「前の値」)に設定します。
現在の(実際の)長方形の値を取得するにはどうすればよいですか?


いくつかの背景情報とバグ修正:

SwingLabs-Demos のMatchingTextHighlighter.javaを使用しています(例はSearchDemo.javaです)

JXTableセルで見つかった文字だけをマークするのは非常に良いスタートです。ただし、セルコンテンツの配置をからに変更する、蛍光ペンの位置に問題が発生します。LEFT

また

文字が強調表示されると、次の3つのバグが発生します。

1枚の写真に3つのバグ

  1. 状況:JLabelのテキストが完全に表示されます。
    問題:列の幅が広くなると(列ヘッダーを使用してサイズが変更される)、蛍光ペンが右にドリフトします(一致した文字からのawaaay)。

  2. 状況:JLabelのテキストは部分的に表示されますが(省略記号でペイントされています...)、強調表示された文字列は完全に表示されます。
    問題:列幅のサイズを変更しているときに、蛍光ペンの位置が1ピクセルから1文字に間違っています。

  3. 状況:JLabelのテキストと強調表示された文字列が部分的に表示されます(強調表示は省略記号上にある必要があります)
    問題:列幅のサイズ変更中に、省略記号の強調表示の幅が間違っています(ピクセルなしから正しい幅まで)。
    これは、左揃えの列にも表示される唯一のバグです(蛍光ペンの幅は常に正しいですが、右にジャンプすることがあります)。

最初のバグは、2行でコメントアウトすることで修正できますtextR.x(MatchingTextHighlighter.javaの327行目から)。

2つの小さな問題が発生します
。1つは、一致した領域が最初のラベル文字で始まる場合、蛍光ペンがさらに1ピクセル左に始まることです。2つ目は、蛍光ペンです。列ヘッダーを使用して列の幅のサイズを変更した場合、中央揃えの列で1ピクセルジャンプします。
両方(およびRightToLeft-Error)は、これらの変更(MatchingTextHighlighter.javaの397行目から開始)で修正できます。

3番目のバグは、(XMatchingTextHighlighter.javaの48行目を変更する)ことで部分的に修正できます。

これで、蛍光ペンは常に省略記号の最初のピクセルから始まります。修正してください。:-)
しかし、列のサイズを変更している間、幅は変化し続けます、エラー!:-(

MatchingTextHighlighter.javaの2番目と3番目のバグ(残りの半分)をデバッグした後、ユーティリティメソッドの呼び出しだと思います

パラメータtextRを古い値に設定します。列のサイズを変更しているときに、計算されたテキストの長方形の幅が「1イベント遅れている」ように見えます。このため、蛍光ペンの位置が間違っています。

誰かがこれを修正するアイデアを持っていますか?

これをすべて読んでくれてありがとう...

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

swing - SwingX と JToggleButton

私のアプリケーションでは、SwingX ライブラリの JXButton を使用しています。ペインタ メソッドがとても気に入っています。ここで、単純なボタンをトグル ボタンに変更し、選択されていない/選択されている状態に別のペインターを使用する必要があります。残念ながら、JXToggleButton が見つかりませんでした。ペインターメソッドの利点を維持する解決策はありますか?

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

java - JXDatePicker と selectAll()

JXDatePickers エディター セルがフォーカスされたときにそのエントリを自動選択するリスナーが必要です。

動作しません。だから私はこれを試しました:

助言がありますか ?

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

java - JXTable と RXTable の結合

問題

RXTableの「編集時にすべて選択」動作を備えたJXTableの機能が必要です。単純なオーバーライドを行うことは問題ありませんが、RXTable のダブルクリック機能は JXTable では機能しません。ボタン アクション モードを使用する場合は問題ありませんが、F2 を使用するか、JXTable で何かをダブルクリックすると、RXTable と衝突して選択が削除されるため、デフォルトの動作のままになります。内部で使用している GenericEditor のためですか、それとも何か他のものですか?

F2またはダブルクリック編集でJXTableをすべて選択するにはどうすればよいですか?

編集:これは、モデルに整数型用に定義された列がある場合にのみ発生するようです。文字列またはオブジェクト列に対して定義されている場合、期待どおりに機能します。

解決

kleopatra の修正のおかげで、selectAll メソッドを変更して、JFormattedTextFields とすべての編集ケースを処理できるようになりました。元のコードは編集するタイプで機能していたので、他のケースでは修正を使用しました。これが私が最終的に得たものです。

RXTable の selectAll を次のように置き換えます。

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

java - JTreeTableの表示の問題

次の問題があります。JTreeTableとAbstractTreeTableModelを拡張するモデルを作成しました。問題は、挿入操作のたびにfireTreeStructureChanged()メソッドを呼び出した場合にのみ、データが表示されることです。実際、fireTreeNodesInserted()メソッドを単純に起動しても、何も起こりません。

さらに、私の行のデータは、追加/削除イベントの後でのみ更新されます。値を単純に変更した場合は、テーブルをクリックした後にのみ更新されます。

どうしてそれは可能ですか?

編集

fireTreeStructureChanged()を呼び出すと、メソッドfireTableDataChanged();が呼び出されます。代わりに、fireTreeNodesInserted(int firstRow、int lastRow)はfireTableRowsInserted();を呼び出します。しかし、おそらく私はそれに間違ったパラメータを渡します...私が渡さなければならない最初と最後の行はどれですか?

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

java - Java GUIの即時更新を呼び出すにはどうすればよいですか?(Thread.sleep()と競合します)

私はゲームの記憶を作っています。あなたが2枚のカードを選んだとき、それらが一致した場合、あなたはそれらを保持することができます。そうでない場合、あなたはそれらを元に戻します。その後、すでに選択したカードを覚えている場合は、次の2枚のカードをより正確に推測することができます。

私が抱えている問題は、repaint()すぐに塗り直さない方法に関係しています。

2枚目のカードを裏返すときは、結果に関係なく、両方のカードを表向きに裏返してから、捨てるか裏返しにする前に見せたいと思います。これを行うには、を呼び出しsleep()ます。

もちろんrepaint()、カードを裏返して少し待ってから、repaint()その値に基づいて、役立つ小さなJavaは1回だけ再描画します(Cが恋しいです!)。

基本的に、私は私がする前に更新を強制的に呼び出すことを望みsleep()ます。基本的に、ロジックとグラフィックスを分離するために2つのスレッドを作成するのが最善の方法であると述べている他のスレッドをいくつか読みました。その後、ロジックを作成しsleep()てGUIを更新し続けることができますが、私は1年目のCSコースの最初の学期にいます。高校では、コースのレベルを維持したいと思います(ただし、夏のWeb開発とCでのコーディングにかなりの時間を費やしました)。

StackOverflowの役立つ人々がコードを読むのが大好きだと知っているので、ここで私が以下で参照しているプログラムの一部を示します。クラスHitAreaはCardオブジェクトであり、cards[]配列には大量のHitArea'が含まれています(HitAreaクラスの名前を変更することはできません)。activeCard1activeCard2HitArea、ユーザーの2つの選択を追跡するために使用するインスタンスであり、空白のコンストラクターは予約済みの「非表示」ですが、HitArea後でnullに変更します。最後に、カードが正しい向きであるかどうかを決定cards.flip()するブール値を反転します。toggle

私のコードにいくつかの問題があることは間違いないので、遠慮なく指摘してください。私の基本的な構造は大丈夫だと思います。このプロジェクトでは複数のスレッドを作成したくありません(基本的なことを覚えておいてください)。

0 投票する
0 に答える
203 参照

java - Java JXTreeTable タブ文字のサポート

タブ文字(\t)またはタブキーはJXTreeTableでサポートされていますか? 「My Name」のような入力を入力しているため、My と Name の間のスペースはスペースバーではなく、キーボードの Tab キーを使用しています。JXTreeTable でこの入力を見ていると、MyName としてしか見ることができません。タブスペースがないと、これに関して何か入力できますか?

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

java - 別のGUIからの応答を待つためにinvokeLaterまたはinvokeAndWaitを使用する

このメソッドは、用語集の1つのエントリの2つの定義を2つマージすることになっています。GlossaryEntryMergeUIクラス(JFrameの拡張)のインスタンスを作成し、ユーザーにマージプロセスを案内します。ユーザーがボタンをクリックして送信すると、ウィンドウが閉じます。マージメソッドは、マージされた定義を抽出し、結合された用語集エントリを返します。

マージメソッドにMergeUIからの応答を待機させる最良の方法は何ですか?InvokeAndWaitを使用してみましたが、それを機能させる方法がわかりませんでした。