問題タブ [jxtable]

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

java - データベースから入力された JXTable 列のハイパーリンク

私の質問は、JXTable 列 (1 つまたは特定の列のみ) からハイパーリンクを作成して、デフォルトのデスクトップ Web ブラウザーの「_blank」リンクのように動作させるにはどうすればよいかということです。

JXTable と DefaultTableModel を使用し、sqlite データベースからデータを呼び出します。私はインターネット、グーグル、[...] で調査を行い、次のような多くの情報を見つけました。

  • MouseListener を JXTable に登録します。
  • MouseEvent からポイント オブジェクトを生成します。
  • getValueAt を介してテキストを取得します

***注: 列にはセルごとにリンクが 1 つだけあり、テキストはなく、リンクだけです。

今のところ、このコードを実装して、セルをダブルクリックするアクションを作成しました。この例のように、デフォルトのブラウザーで開く列のハイパーリンクを実装するのを誰かが手伝ってくれます(ただし、データがデータベースから呼び出されないため、適応する方法がわかりません)。

EDIT 1 @Kleopatra の EDIT 2 のコードには、アプリケーションにいくつかの問題があります。また、次のコードのような別の試みを行いました。最初のクリックが関係しているときにリンクが表示されますが、反応しません (ブラウザが開いていません)。@Kleopatra、あなたの提案について詳しく教えてください。なぜなら、そのコードを入れようとすると、IDE がhyperlinkColumnを認識しないからです。

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

java - JXTableセルでの日付形式の設定

このスレッドでは、JXDatePickerをJXTable(またはJTable)セルに追加する方法を理解しました。しかし、私は今小さな問題を抱えています。

DatePickerがポップアップし、必要に応じて正常に動作します。ただし、セル内の日付の表示形式を変更することはできません。以下の長い形式で表示されます。

しかし、私はそれをdd-MMM-yyyyフォーマットで必要としています。

DatePickerCellEditorのフォーマットを変更してみました。それは部分的に機能します。つまり、そのセルにフォーカスがあるときに、設定された形式に従って日付が表示されるようになりました。しかし、他のセルに焦点を合わせると、再び上記の形式に戻ります。

障害がではないDatePickerCellEditor可能性があります、それはで何かをしなければならない可能性がありますtableModel。しかし、それを理解することはできません。どんな助けでも大歓迎です。

ありがとう!

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

java - 実行時にJXTableに新しい行を追加するには?

JXTable を使用してレコードのリストを表示しています。

  • 「更新」ボタンをクリックすると、JXTable が更新され、新しく挿入されたレコードが表示されます。

  • また、「新しい行を追加」ボタンをクリックすると、JXTable に新しい行を追加する必要があります。

どうすればこれらを行うことができますか? 有用なリファレンスやサンプルが見つかりません。私を案内してください。

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

java - GlazedLists の EventTableModel に切り替えると、JXTable のソートが非常に遅くなるのはなぜですか?

更新しました

この質問を更新して、問題の原因をより正確に説明し、最初に使用したより簡単な例を含めました。

私が抱えているパフォーマンスの問題を示すために、以下に簡単な例を含めました。JXTable を通常の ArrayList でバックアップすると、かなりうまく機能します。ただし、EventList の ArrayList を切り替えて、EventTableModel を使用してテーブルを構築すると、並べ替えが大幅に遅くなります (この場合、約 10 倍遅くなります)。

Maven または Gradle を使用している場合、使用しているアーティファクト座標は次のとおりです。

そして、これがその例です。EventList を使用しようとした唯一の理由は、TableModel の外部で変更して必要な通知を発生させることができるデータ構造が必要だったからです。

また、EventTableModel に基づくテーブルが、数値ではなく文字列値に基づいて並べ替えられていることにも気付きましたが、その理由はわかりません。これは、100 万行が並べ替えられたプロファイラーのスクリーンショットです。

最初のテーブル

セカンドテーブル

何か案は?

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

java - JXTable java.lang.IndexOutOfBoundsException: 範囲が無効です

jxtable のテーブルモデルに行を追加する際に問題が発生しました。

次の例外がスローされます。

スレッドからモデルを埋めるメソッドを呼び出します。これは、10000 を超えるエントリになる可能性があるためです。そうしないと、プログラムがフリーズします。

コードを貼り付けることができず申し訳ありませんが、これは私の会社では非常に重要です。

私が行う場合、例外はその行に来ます:

この例外が発生する理由を誰か知っていますか?

最高の

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

java - JXTable-テーブルの並べ替え時に蛍光ペンを更新する方法

カスタムテーブルモデルのJXTableがあります。カスタムHighlightPredicateで2つのColorHighlighterを追加しました。

問題は、列ヘッダーをクリックすると、テーブルが行を並べ替えますが、蛍光ペンは古いビューのままです。

テーブルを並べ替えた後、ハイライトの状態を更新するにはどうすればよいですか?

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

java - 同じカスタム モデルを持つ 2 つの JXTables - 1 つのテーブルでセルを編集可能にし、2 番目のテーブルでは編集できないようにする方法は?

カスタム テーブル モデルがあり、そのデータを 1 つの JXTable で編集したいが、2 番目の JXTable では表示のみにしたい。これは、2 つの別個のモデルがなくても実行できますか? 表示専用テーブルの model.isCellEditable をオーバーライドする方法はありますか?

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

java - SortController:動的フィルターの使用方法

JXTableSwingXプロジェクトのfromには、RowFilterに直接設定するメソッドがありJXTableます(を参照JXTable#setRowFilter)。

フィルタの実装が動的である場合に何をする必要があるかは私にはわかりません。

比較すると、JDKRowSorterではJDK1.6にインターフェースが導入されており、このインターフェースでは。をアタッチできますRowSorterListener。ダイナミックRowSorter(フィルタリングにも使用可能)がある場合は、フィルターが変更されたときにそれらのリスナーにイベントを発生させることができます(ただし、JDKにはまたRowSorterはなどがないため、フィルターがにアクセスできる必要があります) )。DynamicRowFilterRowFilterEvent

私が期待するのは、に「監視可能」を設定でき、RowFilterJXTableもする必要がないということです。しかし、それは現在のAPIでは不可能であるように思われるので、次善の策は何ですか?

  • フィルタが変更されるたびに、フィルタを再設定します。以前に設定されたものとまったく同じインスタンスであるため、これも効果がありJXTableますか?
  • テーブルイベントを悪用し、テーブルモデルが変更されたというイベントを発生させるだけで、並べ替え/フィルタリングが再トリガーされます
  • メソッドを使用せずsetRowFilter、独自のメソッドを作成TableRowSorterして、JDKAPIにフォールバックします。
0 投票する
1 に答える
159 参照

java - JXTableで現在の選択を変更しても機能しませんか?

ユーザーがデータを導入して保存する必要があるJXTableがあります。唯一のことは、ユーザーはそれを保存する前に最後に編集されたセルの選択を解除する必要があるということです。そうでない場合、そのセルのデータは保存されません。

私が考えた唯一のことは、保存する直前に現在の選択を自動的に変更することです。これは私が試したものです:

また

どちらも機能していないようですが、これを行うために私が見つけた2つの方法はこれらだけです。

誰かがこれを適切に行う方法を教えてもらえますか、または最後のセルからのデータも保存できるようにするための代替案を提案できますか?

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

java - JXTableの列を非表示にしますか?

JXTableを使用していて、プログラムで列を非表示にしたい。

これを行うための便利な方法はありますか(最小/最大/優先幅を設定せずに)?

ありがとう。