問題タブ [listcellrenderer]

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

java - ListCellRendererComponent() メソッドは、最後に追加された要素と同様に、JList のすべてのオブジェクト (要素) を更新します

こんにちは、要素として sJListを含むa を実装しました。JLabel私の目的は、サーバー/クライアント チャット アプリケーションの連絡先リストを実装することです。したがって、クライアントがサーバーに接続すると、JList がビルドされて連絡先リストが表示されます。JLabels を使用することを選択したのは、アイコンとテキストも含めることができるためです。ただし、オーバーライドされた cellrenderer メソッドについて問題が発生しています。クライアントがオンライン/オフラインになるたびに、JList はその状態を更新し、最後に追加されたアイテムと同様のすべてのアイテムを設定します。こんな感じで、

オフライン状態のクライアントをユーザーのフレンド リストに追加するのはこれが初めてです。

ここに画像の説明を入力

その後、別のクライアントを追加するのは 2 回目です。

ここに画像の説明を入力

そしてついに3回目…

ここに画像の説明を入力

さらに、チュートリアルでは、JList オーバーライドのペイン メソッドについて言及し、リストに変更があったときに要素全体を何度も描画することを覚えています。実際、私はこのレンダリングの主題について初心者であり、これは非常に面倒です。ここに私のレンダラー クラスが表示されます。 レンダラーサンプル

メインクラスでこのようにモデルに要素を追加します

またcreatePanel()、次のような JLabel を返します。

私の問題について明確になったことを願っています。連絡先が状態を変更したとき、または連絡先が追加されたときに、このアクションが他の要素に影響を与えないようにする必要があります。私はすべての答えに非常に感謝しています(また、あなたが何をなぜしたかについての簡単な説明を追加できれば、私は感謝します.) とにかくありがとう

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

java - DefaultListModel に JButton を追加するにはどうすればよいですか?

私は戦艦ゲームを作成しており、ペイン内のボタンを制御してドラッグ ドロップし、デフォルトのリスト モデルでインデックスを追跡できるようにする方法を見つけようとしています。文字列または ImageIcons を追加すると、正常に動作します。しかし、ボタンを使用すると、何か違うものになります。

これが私のコードです:

ボタンを追加すると、次の結果が得られます。

ペインにボタンを追加した結果

だから私の質問は次のとおりです。デフォルトのリストモデルでテキストとしてではなく、ボタンを通常どおりに表示するにはどうすればよいですか?

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

java - Null ポインタを返す ListCellRenderer

これは私の最初の投稿なので、ひどい場合は事前に謝罪してください...

カスタム ListCellRenderer を使用して、カスタム クラスのリストから JList に項目を追加しようとしています。それぞれに、行に追加したいさまざまなものがあり、リスト内のそれぞれに対して新しい行が取得されます。




リストの内容を調べて null でないことを確認しましたが、上で強調表示された行は null ポインターを返します。

Java に関する私の知識はまだ限られているため、(簡単な!) ヘルプをいただければ幸いです。

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

java - JComboBox の選択不可能なデフォルト値を表示する

JComboBoxは 3 つの Items を含むを持っています{"Personel", "Magasinier", "Fournisseur"}

JComboBoxこれは、選択できない値であるvalue を表示します"Choisir une option :"

私は後にこのコードを試しましたinitComponents();:

しかし、うまくいきません。

どうやってやるの ?

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

java - 内部に 3 つの JLabel を持つ JList

Listでコメント付きを表示する可能性を探していますJavaJListを使って自作しようと思いましたCellRenderer。問題は、名前、日付、コメントをリストの 1 つの項目に表示したいことです。

JListこれは aと aでどのように実現できCellRendererますか? または、の代わりに何か他のものを使用する必要がありJListますか?

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

java - JList セル内で行の折り返しが機能しない

JList を使用して、ユーザーに表示される可変の読み取り専用テキストをラップしています。テキストの各行は、JTextArea に基づいてリスト セルにレンダリングされます。

そして、このレンダラーはリストで使用されます:

JList は JScrollPane に埋め込まれています。

ここでの典型的な使用パターンは、マウスではなく矢印キーを使用するためです。これにより、現在のセルが強調表示され、何が起こっているかがユーザーに明らかになります。単一の JTextArea を使用する以前の実装では、非表示のキャレット (編集できないため非表示) がスクロール可能なポイント (ウィンドウの下部または上部) に到達するまで、ユーザーは下向き矢印を複数回押す必要がありました。

問題は、InfoTextCellRenderer が行の折り返しと単語の折り返しをオンにしても、テキストが表示されるときに折り返しが行われないことです。

行の折り返しの発生を妨げているのは何ですか?

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

java - ListCellRenderer キャスト例外

カスタム レンダラーのコードは次のとおりです。

にアイテムがない場合を除いて、すべてが正常に機能しますDefaultComboBoxModel。この場合、の値でgetListCellRendererComponent呼び出され、代わりにオブジェクトが必要になるため、エラーが発生します。String""Facility

なぜこのように振る舞うのですか?

更新:エラーがキャストによるものであることは知っており、使用方法を知っていますinstance of。問題は、なぜこのように動作するのか(関数)です。要素がない場合、まったく呼び出されないと予想されますが、なぜそれが呼ばれるのですか?結局のところ、要素がない場合、それは何をフォーマットしますか。

更新:以下の受け入れられた回答を使用できます。そのように動作する理由については、リストに空の文字列が必要なためです。コンボボックスを初めて初期化するときにデフォルトで選択される空の文字列を知っています。

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

java - JPanel - JLabel を含む JList を Java で反復処理する

各項目に含まれる JList を反復処理しようとしています: JPanel - JLabel

現在私が持っているものは次のとおりです。

私が得る出力は次のとおりです。

Item = javax.swing.JPanel[,0,0,0x0,invalid,layout=java.awt.FlowLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=]

代わりに、JPanel 内にあるテキストにアクセスしたいと考えています。

これはどのように行うことができますか?

編集:これは、JPanelをJListに追加する方法です

だから私が見つけたいテキストは「こんにちは」です