問題タブ [defaultlistmodel]

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

java - DefaultListModel 内のアイテムの文字列名を更新する方法

私はXML からのデータをJlist持っています。DefaultListModel

でアイテムの名前を変更できるようにしたいJlist。しかし、DefaultListModel更新方法はありません。

したがって、ユーザーが名前をクリックすると、名前を編集する必要があります。

これまでのところ、アイテムの場所を取得して削除し、新しいデータで更新するかどうかを考えていました。しかし、新しい名前で更新すると、古い名前と同じ場所に配置されますか、それとも混乱しますか?

私のコード:

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

java - JTable - 削除された行を取得する方法

モデルとして、モデル自体の基になるデータとしてJTablewithを使用しているため、JTable はこのリストに格納されているデータを表示しています。DefaultTableModelDefaultListModel

JTable では、要素がモデルに追加/モデルから削除されたときに通知を受け取ります ( DefaultTableModelを介しfireTableRowsInsertedて起動されます)。fireTableRowsDeleted

削除された要素の内容に到達する可能性はありますか?

特定の要素が削除されたときにいくつかのクリーンアップを実行する必要がありますが、fireTableRowsDeleted 通知は削除後にのみ送信されるようで、手遅れです。

----編集:より良い画像を得るために、SSCCEが次のように見えると仮定しましょう:

TableDemo.java

表データ.java

TableDemo は UI レベルの一部であり、TableData クラスはモデル レベルの一部であり、バックエンドで更新されます。このデータはフロントエンドに表示されますが、対話/編集機能はありません。ただし、ある時点で、アプリケーションはいくつかの変更 (要素の削除など) に対応する必要があります。

TableData の変更が発生する前/発生時に通知を受ける方法はありますか? または、データを表示する方法が正しくないので、他のメカニズムを使用する必要がありますか? (どれ?)

ここに描かれていないもう 1 つの情報: MyTableModel で ListDataListener の実装も使用しているため、TableData の変更をリッスンしていますが、これでは十分ではありません。

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

java - DefaultListModel と ConcurrentHashMap でのデータの保存

クライアントからの着信要求を表示するための GUI をスイングで作成しています。サーバーLinkedBlockingQueueは にデータを取り込みますが、利用可能なデータがある場合、別のスレッドがキューから取得します。リクエストは として保存されますObject。そのようです:

今、私の質問が来ました。

解決策 1:

キーをリクエストのハッシュとして、値をオブジェクトとして に格納しますrequest。次に、aをConcurrentHashMap<Integer, Object>使用して、リクエストの識別子(リクエスト タイプなど) とハッシュ値を格納します。は、にデータを入力するために使用され、リクエストを効果的にユーザーに表示します。選択されたリクエスト (ユーザーによって選択された)の値は、に保存されたハッシュを使用して ConcurrentHashMap から取得できます。DefaultListModelDefaultListModelJListDefaultListModel

いくつかのコード例:

ユーザーがリスト内のアイテムを選択すると、次のようになります。

解決策 2:

DataHolderリクエスト識別子とリクエスト値を使用して、新しいオブジェクトを作成し、それを と呼びます。これでJList、実際のリクエスト値を取得するためDefaultListModelDataHolder他のデータ構造を参照する必要がなくなりました。DefaultListModelは の入力に使用されるためJList、パフォーマンスに影響を与え、リストの入力/非入力が遅くなる可能性があると感じています。

いくつかのコード例:

ユーザーがリスト内のアイテムを選択すると、次のようになります。

より迅速に結果が得られるソリューションはどれですか? これを行うより効率的な方法はありますか?この問題に関するヘルプは大歓迎です。

いくつかの詳細情報:

  • リクエストはバーストで配信される場合があります。(バーストごとに 50 以上)
  • リクエストは 20 ~ 50 行の XML で構成されます
  • リクエストはデータ構造からランダムに削除されます

編集:

メッセージをリストに追加するシーケンスは、 でラップされましたinvokeLater。私の実装では、メッセージがリストに追加されるたびに、すべての作業を行う新しいスレッドが作成され、メッセージがリストに追加されると終了します。確かにこれは答えに影響します。(addToList を呼び出すたびに) 50 個のスレッドが連続して作成された場合、どのソリューションがより速く実行されますか?

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

java - jListデータをtxtファイルに保存する方法は?

ユーザー入力を jlist から txt ファイルに保存する方法を探しています。宿題のプロジェクト用です。テキストフィールドからユーザー入力を取得するようにプログラムを設定し、追加ボタンを押すとjlistに入ります。jlistにはdefaultlistmodelがあり、保存ボタンを作成して完全なjlistを.txtファイルに保存できるようにする方法があるかどうか疑問に思っています。

また、ここに私のコードがあります:

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

java - DefaultListModel を java.sql.Time オブジェクトで並べ替える

がありDefaultListModel、実行時にアイテムを追加および削除できますが、sql.Timeオブジェクトをコンパレーターとして使用して、更新後にそれらを並べ替えたいのですが、その方法がわかりません。彼は私のコードです:このDLMはJFrame1に取り込まれています

そして、次を使用して別の JFrame からアクセスおよび操作されます。

実際には更新しますJListが、このための並べ替えメソッドを実装したいと考えています。

}

パラメータはたくさんありますが、クラス全体を投稿しました。ありがとう