問題タブ [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 - すべての行を同じ色に設定する ListCellRenderer
私の意図は、ListCellRenderer を使用して、アクセスされた (またはクリックされた) リンクを含む赤いセルを強調表示し、アクセスされていないリンクを緑色で強調表示することです。レンダラーは、セルを赤くマークすることに関しては機能しているようです。ただし、さらに行を追加すると、その後はすべて赤色になります。さらに、隣接していない 2 つのセルをマークすると、それらもすべて赤でマークされます。
私は最初にブール変数を持っていたクラス Feed を持っていますが、m_isRead 変数が listModel にあるようにコードを変更しました。ここにコンストラクターがあります。
現在、このインスタンス変数は、レンダラーを含む listModel クラスで false に設定されています。
このメソッドを必要としないように調整した ListCellRenderer を使用する場合:
私は次のように進めます:
次に、選択したアイテムを取得するために使用するメソッドを備えた別の内部クラスがあり、その時点でm_isReadを true (読み取り) に設定します。これは Feed クラスから独立し、それに関連するコードはコメントアウトされています。
結果は同じです。行を追加すると、それらは緑色で正しいです。各行をクリックすると、最初にクリックした行に隣接する行をクリックした場合、各行が読み取られますが、たとえば、 4 つの行があり、最初の行と最後の行をクリックすると、その間の行 (クリックしていない行) を含むすべての行が赤くなります。同様に、新しい行を追加すると、赤になります。つまり、これらの行の 1 つでもクリックすると、その後に追加する行が赤になります。
誰でも助けることができますか?
前もって感謝します、
乾杯
java - 2 つの行を選択した後、追加された行がデフォルトで選択されます
例として、 mKorbelによるこの例を取り上げます。
mKorbel によって提案されたメカニズムを使用して、目的の動作を作成することができました。これは、1 つの行が緑色に塗られている (選択されていない) 限り機能します。ただし、1行追加して選択してから新しい行を追加すると、正常に動作し、選択されていない新しい行が得られます。2行目を追加して選択すると、正しく赤く塗られますが、2行目の後にさらに行を追加すると(2つの赤い行)、デフォルトですべて選択されます。これは私が望むものではありません。クリックするまで(ダブルクリックするまで)すべての行を緑色にしたい。なぜこれが起こっているのか誰にも分かりますか?1 つのセルが選択されていない限り、なぜ機能するのですか? 2 つ以上の行またはすべての行が選択されている場合、選択モードで新しい行が追加され続けるのはなぜですか? THNX
マウス イベントのコードは次のとおりです。
CellRenderer のコードは次のとおりです。
java - JList のカスタム セル レンダラー内のコンポーネントにマウスの位置をディスパッチする
モデル内の値ごとに JPanel を作成する JList 用のカスタム cellrenderer を使用しています。
JPanel の 1 つのコンポーネントのマウス カーソルを変更したいと考えています。
しかし、JListはマウスの動き/位置を子にディスパッチしないようで、カーソルは更新されません。
これが私の JList のツリーです:
JListディスパッチマウスの位置を作るにはどうすればよいですか?
ありがとう。
編集:いくつかのコード:
java - カスタム JList レンダラーの結果を JList の外で使用するにはどうすればよいですか?
完璧に動作するカスタム レンダラーを持っています。それを「描画エンジン」として使用して、JList で生成されるのと同じオブジェクトを生成するにはどうすればよいですか?
java - ListCellRenderer を正しく機能させることができません
私は今日早く質問を投稿し、MadProgrammer から ListCellRenderer を使用して目的の結果を得るように指示されました。ほとんど機能していますが、コンボボックスに同じエントリが 2 回表示されており、その理由がわかりません。このなぞなぞを解くのを手伝ってください。コード:
ご覧のとおり、ArrayList に 2 つの追加があります。コース番号のみを表示するようにコンボボックスの表示を制限していますが、Course2 が 2 回表示され、ArrayList の内容を印刷すると、Course2 のすべての詳細が 2 回表示され、Course1 の詳細は表示されません。どんな助けでも大歓迎です。乾杯
java - ListCellRenderer に目的のテキストが表示されない
コンボボックスに表示する ArrayList 要素の最初の項目のみを取得しようとしています。ListCellRenderer を使用すると、これを達成するのに役立つことが示唆されています。試行錯誤しましたが、表示するために必要な getCourseNum() メソッドにアクセスできません。私のコード:
そして、ここに私が取り組んでいるクラスがあります:
数日間試してみましたが、ここの未知の水域で泳いでいます。getCourseNum() メソッドにアクセスして、それがコンボボックスに入力される唯一のものになるようにするにはどうすればよいですか? どんな助けでも大歓迎です。注: 数日前に同様の質問をしたところ、コードを修正するよう提案されました。これが私の新しい試みです。私は初心者なので、どんな提案でも大歓迎です。乾杯
java - JListを使用して特定のインデックスの色を変更する
JList を使用して特定のインデックスの色を変更するにはどうすればよいですか。色を変更することはできますが、リスト全体の色が変更され、特定のインデックスをある色に変更し、別のインデックスを別の色に変更できる必要があります。
私は非常に多くの組み合わせを試しましたが、インデックスではなくリスト全体の色のみを変更しているようです。リスト全体を参照しているため、特定のインデックスに対して変更する方法がわかりません。
リストの値には COMPLETED または INCOMPLETE が含まれており、値に応じて色を変更したいと考えています。