問題タブ [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.
java - ListCellRendererComponent() メソッドは、最後に追加された要素と同様に、JList のすべてのオブジェクト (要素) を更新します
こんにちは、要素として sJList
を含むa を実装しました。JLabel
私の目的は、サーバー/クライアント チャット アプリケーションの連絡先リストを実装することです。したがって、クライアントがサーバーに接続すると、JList がビルドされて連絡先リストが表示されます。JLabels を使用することを選択したのは、アイコンとテキストも含めることができるためです。ただし、オーバーライドされた cellrenderer メソッドについて問題が発生しています。クライアントがオンライン/オフラインになるたびに、JList はその状態を更新し、最後に追加されたアイテムと同様のすべてのアイテムを設定します。こんな感じで、
オフライン状態のクライアントをユーザーのフレンド リストに追加するのはこれが初めてです。
その後、別のクライアントを追加するのは 2 回目です。
そしてついに3回目…
さらに、チュートリアルでは、JList オーバーライドのペイン メソッドについて言及し、リストに変更があったときに要素全体を何度も描画することを覚えています。実際、私はこのレンダリングの主題について初心者であり、これは非常に面倒です。ここに私のレンダラー クラスが表示されます。 レンダラーサンプル
メインクラスでこのようにモデルに要素を追加します
またcreatePanel()
、次のような JLabel を返します。
私の問題について明確になったことを願っています。連絡先が状態を変更したとき、または連絡先が追加されたときに、このアクションが他の要素に影響を与えないようにする必要があります。私はすべての答えに非常に感謝しています(また、あなたが何をなぜしたかについての簡単な説明を追加できれば、私は感謝します.) とにかくありがとう
java - DefaultListModel に JButton を追加するにはどうすればよいですか?
私は戦艦ゲームを作成しており、ペイン内のボタンを制御してドラッグ ドロップし、デフォルトのリスト モデルでインデックスを追跡できるようにする方法を見つけようとしています。文字列または ImageIcons を追加すると、正常に動作します。しかし、ボタンを使用すると、何か違うものになります。
これが私のコードです:
ボタンを追加すると、次の結果が得られます。
だから私の質問は次のとおりです。デフォルトのリストモデルでテキストとしてではなく、ボタンを通常どおりに表示するにはどうすればよいですか?
java - Null ポインタを返す ListCellRenderer
これは私の最初の投稿なので、ひどい場合は事前に謝罪してください...
カスタム ListCellRenderer を使用して、カスタム クラスのリストから JList に項目を追加しようとしています。それぞれに、行に追加したいさまざまなものがあり、リスト内のそれぞれに対して新しい行が取得されます。
リストの内容を調べて null でないことを確認しましたが、上で強調表示された行は null ポインターを返します。
Java に関する私の知識はまだ限られているため、(簡単な!) ヘルプをいただければ幸いです。
java - JComboBox の選択不可能なデフォルト値を表示する
私JComboBox
は 3 つの Items を含むを持っています{"Personel", "Magasinier", "Fournisseur"}
。
JComboBox
これは、選択できない値であるvalue を表示します"Choisir une option :"
。
私は後にこのコードを試しましたinitComponents();
:
しかし、うまくいきません。
どうやってやるの ?
java - 内部に 3 つの JLabel を持つ JList
List
でコメント付きを表示する可能性を探していますJava
。JList
を使って自作しようと思いましたCellRenderer
。問題は、名前、日付、コメントをリストの 1 つの項目に表示したいことです。
JList
これは aと aでどのように実現できCellRenderer
ますか? または、の代わりに何か他のものを使用する必要がありJList
ますか?
java - JList セル内で行の折り返しが機能しない
JList を使用して、ユーザーに表示される可変の読み取り専用テキストをラップしています。テキストの各行は、JTextArea に基づいてリスト セルにレンダリングされます。
そして、このレンダラーはリストで使用されます:
JList は JScrollPane に埋め込まれています。
ここでの典型的な使用パターンは、マウスではなく矢印キーを使用するためです。これにより、現在のセルが強調表示され、何が起こっているかがユーザーに明らかになります。単一の JTextArea を使用する以前の実装では、非表示のキャレット (編集できないため非表示) がスクロール可能なポイント (ウィンドウの下部または上部) に到達するまで、ユーザーは下向き矢印を複数回押す必要がありました。
問題は、InfoTextCellRenderer が行の折り返しと単語の折り返しをオンにしても、テキストが表示されるときに折り返しが行われないことです。
行の折り返しの発生を妨げているのは何ですか?
java - ListCellRenderer キャスト例外
カスタム レンダラーのコードは次のとおりです。
にアイテムがない場合を除いて、すべてが正常に機能しますDefaultComboBoxModel
。この場合、の値でgetListCellRendererComponent
呼び出され、代わりにオブジェクトが必要になるため、エラーが発生します。String
""
Facility
なぜこのように振る舞うのですか?
更新:エラーがキャストによるものであることは知っており、使用方法を知っていますinstance of
。問題は、なぜこのように動作するのか(関数)です。要素がない場合、まったく呼び出されないと予想されますが、なぜそれが呼ばれるのですか?結局のところ、要素がない場合、それは何をフォーマットしますか。
更新:以下の受け入れられた回答を使用できます。そのように動作する理由については、リストに空の文字列が必要なためです。コンボボックスを初めて初期化するときにデフォルトで選択される空の文字列を知っています。
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に追加する方法です
だから私が見つけたいテキストは「こんにちは」です