問題タブ [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 - JList カスタム CellRenderer は loader.gif を表示しませんが、PNG を表示します
カスタム ListCellRenderer を使用した JList があります。Cell に、 http: //www.ajaxload.info/ から取得したローダー gif を追加したいと思います。
問題は、gif が表示されず、表示されたときにアニメーション化されない場合があることです。
loader.gif ->
SSCCEはこちら
JList のセルに対して GIF を表示してアニメーション化するにはどうすればよいですか?
ありがとうございました!
java - imageicon と listcellrenderer で画質が悪い
ユーザーがドラッグアンドドロップで移動できる画像のリストを実装する必要がありました。それは私が使用しているコードです:
次に、ファイルを BufferedImages としてロードし、モデルに追加します
私の IonCellRenderer クラスは次のとおりです。
ただし、コードを実行すると機能しますが、表示される画像の品質が非常に悪く、一部の行が表示されません。画像のサイズが大きい (つまり 1488x2105) ためかどうかはわかりませんが、サイズを 400x600 に変更しています。
どうすれば解決できますか?
アドバイスありがとう、ステファノ・フランキーニ
java - カスタム セル レンダリングにより、getListCellRendererComponent() での画像の読み込みが妨げられる
カスタム セル レンダラーを使用してカスタム オブジェクト (カエル) を表示する JList があります。
カエルのオブジェクトには画像のリストが含まれており、リストから最新のものを選択して表示します。サムネイルファイルになっているので、メモリに読み込んで表示できます。ただし、ウィンドウが移動するたびに、またはウィンドウを再描画する必要があるたびに JList が再レンダリングされることはわかっています。これは、パフォーマンスが非常に悪く、デザインが良くありません。私が抱えている問題は、このリストが動的であるため、ユーザーが実行時にそれらを追加でき、リストが自動更新されるため、起動時にすべての画像を単純にロードできないことです。
一部の人々は、コンストラクターでイメージをメモリにロードしてgetListCellRendererComponent()
メソッドで設定することに言及しましたが、セル レンダラーを 1 つしか作成せず、リスト内のすべてに使用するため、それは可能ではないようです。また、コンストラクター メソッドを出力してこれを確認しました。さまざまな画像を含むカエルのリストを作成するので、これはあまり意味がありません。
これが、現在サムネイルを作成するために使用しているコードです。
私はこのメソッドを呼び出すとgetListCellRendererComponent()
パフォーマンスが低下することがわかっていますが、複数のカエルのためにメモリにキャッシュし、1 つのオブジェクトのみを使用する方法がわかりません。もしかしてイメージマップ?これを行う適切な方法の確固たる証拠を見つけることができないようです。
java - カスタム レンダラーの UIManager からセル L&F のデフォルト カラーを選択
画像といくつかのラベルを持つカスタム JList レンダラーがあります。isSelected 変数と UIManager のデフォルト L&F を使用して、このリストの背景と前景を設定する方法を知っています。
これは正常に機能しますが、「選択された」カラーキーがあるため、JLabel の色についてはわかりません。そのため、項目を選択しても色は変わらず、コントラストもほとんどありません。
データの取得に使用できるキーのリストを見つけましたUIManager
が、「選択された JList アイテム ラベル」に使用されるキーがどれかわかりません。
たとえば、OSX では、デフォルトは白い背景に黒いテキストです。ただし、選択すると、セルの背景が青になり、テキストが白になります。ラベルが何色に変わるか (この場合は白) を調べる方法を知りたいです。前景/背景/無効は、私が見つけることができる唯一のものです。
java - JComboBox セル レンダラーが Windows ルック アンド フィールで失敗する
ローカル システムのルック アンド フィールを使用する Java アプリケーションを作成しています。プログラムには、色付きのドット (カスタム JComponment) とそれに続くオブジェクトを指定したテキストをレンダリングする ListCellRenderer があります。これは、Swing のデフォルトの Metal ルック アンド フィールを使用する場合にうまく機能します。
ただし、Windows のルック アンド フィールを使用すると、セルはドロップダウン リストで正しくレンダリングされますが、選択されたアイテム (ユーザーが別のオプションを選択していないときに表示されるアイテム) はテキストのみをレンダリングし、色付きのドットを無視します。レンダラーを変更してフォントを設定すると、ドロップダウンと選択した項目の両方で適切なフォントが表示されるため、セル レンダラーが少なくとも部分的に使用されていることがわかります。
このような問題を引き起こしているさまざまな LAF に関する Web 上の投稿をいくつか読みましたが、私の特定の問題について話し合っている人に出会ったことはありません。
興味のある方のために、コードは次のとおりです。
.
また、カスタム コンポーネントのコードは次のとおりです。誰かがこれを試して、私がここでばかげたことをしているだけかどうかを確認してください。
編集: これをUbuntu 12.04でテストしたところ、セルレンダラーは期待どおりに機能しました(ただし、カスタムレンダラーが適用されていない場合のように、JComboboxは外側の境界線をレンダリングしませんでした)。
編集:これをさらに詳しく調べると、JComboBox の setEditor メソッドに何かがあるように見えますが、編集できない場合は、メソッドの状態の javadoc としてレンダラーを使用する必要があります。
JComboBox フィールドで選択された項目を描画および編集するために使用されるエディターを設定します。エディターは、受信側の JComboBox が編集可能な場合にのみ使用されます。編集できない場合、コンボ ボックスはレンダラーを使用して、選択した項目を描画します。
それは私が見ている動作ではないようです。Windows LAF のユーザーがセル レンダラーのすべての部分を監視できるようにするには、どうすればよいですか?
java - 選択したエントリで ListCellRenderers を使用する
ListCellRenderer を使用して、JList 内のエントリの外観を編集しています。それらが選択されたら (クリックすることで、このコードはクリック イベント内にあります)、ListCellRenderer を呼び出してテキストの色を変更します。それらが再び選択された場合、テキストを通常の色に戻したいです。私が抱えている問題は、2 番目のエントリを選択すると、最初のエントリが通常の色に戻ることです。選択したエントリが実際に選択解除されるまで、選択した色を維持するにはどうすればよいですか? 実際に関数を呼び出すセクションは次のとおりです。
解釈を簡単にするために、selectedEntries は、選択された各エントリのテキストを含む ArrayList です。
java - JListの列挙型に従って異なるテキストの色を設定するには?
編集: @HovercraftFullOfEels の回答後に更新されたコードは次のとおりです。
注:色を変更したり、フォントを太字または斜体にしたりするなど、いくつかのアクションを実行したかったため、HashMap を使用しませんでした。回答で提供された HashMap は、特定の色を特定の列挙型に設定するためにのみ機能しました。
だから、ここにコードがあります:
EDIT 2:これは私が得たものと私が得たいもののイラストです:
@HovercraftFullofEels によって提供されたコードを実行すると、テキストを変更するためにわずかに変更されます。
私はこの結果を得る: ログの各タイプは、それぞれに与えられた最後のテキストを取得します...そして、最初に与えたテキストを取得できれば、「開くことができませんでした」のようなテキストを表示できるようになりますファイル」を ERROR タイプとスタイルで、「このファイルで指定されたパラメータが間違っています。無視されます」を READ_INFO スタイルとタイプで、「ファイル result.txt に書き込まれた結果」を ACTION として、たとえば.
指定されたコードでは、このテキストを設定して「静的」にする方法と場所がわかりません(ここでは変更されません)。
- - - - - - - - - 古い質問 - - - - - - - - -
ログ ビューアとしてJListを使用しています。いくつかの行を別の色で追加したいと考えています。たとえばenum
、タイプがCOMMENT、ACTION、およびERRORの があります。COMMENTはダークグレー、ACTIONは青、ERRORは赤で表示されます。
をカスタムしてみたListCellRendered
のですが、 に合わせて違う色を設定する方法がわかりませんenum
。
これが私のコードです:
}
私が得るのは白地に黒のリストだけです...
java - JComboBox に setEditable() を使用すると配置がリセットされる
線はgetRenderer()
テキストを中央に揃えます。
と を使用するruleComboBox1.setEnabled(false)
とruleComboBox1.setEditable(true)
、テキストが左に配置されますが、これは望ましくありません。どうすればこれを止めることができますか?
テキストを無効にしたときにsetEditable(true)
テキストの外観を維持するために使用していることを説明する必要があります。ComboBox