問題タブ [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.
java - DefaultListModel 内のアイテムの文字列名を更新する方法
私はXML からのデータをJlist
持っています。DefaultListModel
でアイテムの名前を変更できるようにしたいJlist
。しかし、DefaultListModel
更新方法はありません。
したがって、ユーザーが名前をクリックすると、名前を編集する必要があります。
これまでのところ、アイテムの場所を取得して削除し、新しいデータで更新するかどうかを考えていました。しかし、新しい名前で更新すると、古い名前と同じ場所に配置されますか、それとも混乱しますか?
私のコード:
java - JTable - 削除された行を取得する方法
モデルとして、モデル自体の基になるデータとしてJTable
withを使用しているため、JTable はこのリストに格納されているデータを表示しています。DefaultTableModel
DefaultListModel
JTable では、要素がモデルに追加/モデルから削除されたときに通知を受け取ります ( DefaultTableModelを介しfireTableRowsInserted
て起動されます)。fireTableRowsDeleted
削除された要素の内容に到達する可能性はありますか?
特定の要素が削除されたときにいくつかのクリーンアップを実行する必要がありますが、fireTableRowsDeleted 通知は削除後にのみ送信されるようで、手遅れです。
----編集:より良い画像を得るために、SSCCEが次のように見えると仮定しましょう:
TableDemo.java
表データ.java
TableDemo は UI レベルの一部であり、TableData クラスはモデル レベルの一部であり、バックエンドで更新されます。このデータはフロントエンドに表示されますが、対話/編集機能はありません。ただし、ある時点で、アプリケーションはいくつかの変更 (要素の削除など) に対応する必要があります。
TableData の変更が発生する前/発生時に通知を受ける方法はありますか? または、データを表示する方法が正しくないので、他のメカニズムを使用する必要がありますか? (どれ?)
ここに描かれていないもう 1 つの情報: MyTableModel で ListDataListener の実装も使用しているため、TableData の変更をリッスンしていますが、これでは十分ではありません。
java - DefaultListModel と ConcurrentHashMap でのデータの保存
クライアントからの着信要求を表示するための GUI をスイングで作成しています。サーバーLinkedBlockingQueue
は にデータを取り込みますが、利用可能なデータがある場合、別のスレッドがキューから取得します。リクエストは として保存されますObject
。そのようです:
今、私の質問が来ました。
解決策 1:
キーをリクエストのハッシュとして、値をオブジェクトとして に格納しますrequest
。次に、aをConcurrentHashMap<Integer, Object>
使用して、リクエストの識別子(リクエスト タイプなど) とハッシュ値を格納します。は、にデータを入力するために使用され、リクエストを効果的にユーザーに表示します。選択されたリクエスト (ユーザーによって選択された)の値は、に保存されたハッシュを使用して ConcurrentHashMap から取得できます。DefaultListModel
DefaultListModel
JList
DefaultListModel
いくつかのコード例:
ユーザーがリスト内のアイテムを選択すると、次のようになります。
解決策 2:
DataHolder
リクエスト識別子とリクエスト値を使用して、新しいオブジェクトを作成し、それを と呼びます。これでJList
、実際のリクエスト値を取得するためDefaultListModel
にDataHolder
他のデータ構造を参照する必要がなくなりました。DefaultListModel
は の入力に使用されるためJList
、パフォーマンスに影響を与え、リストの入力/非入力が遅くなる可能性があると感じています。
いくつかのコード例:
ユーザーがリスト内のアイテムを選択すると、次のようになります。
より迅速に結果が得られるソリューションはどれですか? これを行うより効率的な方法はありますか?この問題に関するヘルプは大歓迎です。
いくつかの詳細情報:
- リクエストはバーストで配信される場合があります。(バーストごとに 50 以上)
- リクエストは 20 ~ 50 行の XML で構成されます
- リクエストはデータ構造からランダムに削除されます
編集:
メッセージをリストに追加するシーケンスは、 でラップされましたinvokeLater
。私の実装では、メッセージがリストに追加されるたびに、すべての作業を行う新しいスレッドが作成され、メッセージがリストに追加されると終了します。確かにこれは答えに影響します。(addToList を呼び出すたびに) 50 個のスレッドが連続して作成された場合、どのソリューションがより速く実行されますか?
java - jListデータをtxtファイルに保存する方法は?
ユーザー入力を jlist から txt ファイルに保存する方法を探しています。宿題のプロジェクト用です。テキストフィールドからユーザー入力を取得するようにプログラムを設定し、追加ボタンを押すとjlistに入ります。jlistにはdefaultlistmodelがあり、保存ボタンを作成して完全なjlistを.txtファイルに保存できるようにする方法があるかどうか疑問に思っています。
また、ここに私のコードがあります:
java - DefaultListModel を java.sql.Time オブジェクトで並べ替える
がありDefaultListModel
、実行時にアイテムを追加および削除できますが、sql.Time
オブジェクトをコンパレーターとして使用して、更新後にそれらを並べ替えたいのですが、その方法がわかりません。彼は私のコードです:このDLMはJFrame1に取り込まれています
そして、次を使用して別の JFrame からアクセスおよび操作されます。
実際には更新しますJList
が、このための並べ替えメソッドを実装したいと考えています。
}
パラメータはたくさんありますが、クラス全体を投稿しました。ありがとう