問題タブ [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 に答える
1171 参照

java - Swing ListCellRenderer の機能

のJavaDocjavax.swing.ListCellRendererのサンプル コードに関する簡単な質問:

ListCellRendererこの例では、が拡張するクラスによって実装されており、メソッドがJLabel単純getListCellRendererComponent(...)に を返すことに少し驚いていますthisJLabel複数の要素を含むリストであっても、周りに a のインスタンスが 1 つしかないように見えます。

setText(...)通常、リスト内の 2 番目の項目に対してメソッドが内部で呼び出されるとgetListCellRendererComponent(...)、リスト内の既存の最初の項目のラベルが変更されることを期待します。または、実際には、リストが同じJLabelインスタンスを 2 回 (またはそれ以上)、リスト内の各項目に対して 1 回ずつ使用することさえできないはずです。

さて、これを解決する 2 つの方法を思いついたので、実際にどちらが (もしあれば) 起こっているのか疑問に思っていました:

  • リスト項目ごとJListに提供されたの新しいインスタンスを何らかの方法で作成しますか?ListCellRenderer
  • それとも、実際にこのコンポーネントを何らかのパネルに追加するのではなく、リストのキャンバスでgetListCellRendererComponent(...)そのメソッドを呼び出すためだけに返されたコンポーネントを使用しますか?paint(...)
0 投票する
1 に答える
1487 参照

java - JComboBox への項目の動的追加 (値 + アイコン = jlabel)

DefaultComboBoxModel を使用して、JComboBox (文字列テキスト、アイコン アイコン) に特定の項目を追加します。しかし、何かがうまくいかない。これら 2 つのアイテムをコンボ モデルに追加すると、次のようになります。

要約すると、コンボボックスのコードは次のようになります。

ListCellRenderer の使用を検討しましたが、「値」と「アイコン」を同時に使用して、たとえば JLabel コンポーネントをレンダリングする必要があることを「伝える」方法がわかりません。JButton を使用してこれらの項目を動的に追加できることは、私にとって非常に重要です。

ここに画像の説明を入力

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

java - カスタム ListCellRenderer での JList 表示エラー

JList のカスタム ListCellRenderer に問題があります。リストに項目が 1 つしかない場合、セルは正しく表示されますが、複数の項目がある場合、次のように、すべてのセルのコンテンツが互いに重なるように各セルの継ぎ目が塗りつぶされます。

ここに画像の説明を入力

私の CellRenderer は次のようになります。

を使用して設定されます

メソッドgetSendungen()は の ArrayList を返しますuiSendungsbutton

JList で各項目を独自のセルに正しく表示するにはどうすればよいですか?

0 投票する
0 に答える
99 参照

swing - すでに選択されている jlist の最初の行

ネットでいくつかの調査を行った後、ここでの質問に対する完全な答えは実際には見つかりませんでした: JList があり、アプリケーションを実行するときに最初の行が既に選択されていることを望みます..このように、少なくとも 1 つの項目がArrayIndexOutOfBoundsException を回避するために選択されたコードのサンプルがあります:

ListCellRenderer が必要ですか? 前もって感謝します

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

java - カスタム ListCellRenderer の作成

カスタム ListCellRenderer を書きたいと思います。

デフォルトのものと異なる必要があるのは、 の戻り値を表示するのではなく、 の戻り値を表示することだけvalue.toString()ですvalue.myOwnCustomMethodThatReturnsString()

それを行う最も簡単な方法は何ですか?

これがすべて含まれているクラスは、すでに ListCellRenderer を実装しており、次のものがあります。

括弧の間に何を入れればいいのかわかりません...

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

java - デフォルトのような ListCellRenderer を作成しますか?

任意のオブジェクトの に表示されるテキストをカスタマイズするにJComboBoxは、カスタム を作成するのが正しいアプローチであることを知っていますListCellRenderer。ただし、通常のコンボ ボックスと同じルック アンド フィールを模倣する方法でこれを行う方法がわかりません。

以下の SSCCE を検討してください。動作しますが、コンポーネントを にキャストする不快な行が 1 つありJLabelます。これは私が持つべきではない、頼るべきではない魔法の知識です。そんなに醜いことをせずに同じ効果を得る他の方法はありますか?

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

java - ListCellRenderer - JLabel - 文字列 - n 行

だから私はこの状況を持っています:

一連の文字列を表示する JList があります。

ただし、これらの文字列は非常に長く、JList は非常に狭いです。紐が通らないということです。

私がやりたいことは、次のように各エントリを 2 行にすることです。

最初の行の wordWrap を実行し、残りの文字列を切り取り、残りの部分に 3 つのドットを追加して、最大スペースが埋められるようにすることで、2 番目の行を終了します。

私が何をするかは重要ではありません。重要なことは、FontMetrics を使用してこれらすべてを測定し、機能させる必要があるということです。そして、それがキャッチです。

メソッド全体getListCellRendererComponent(...)が実行されるまで、コンポーネントは描画されないため、グラフィックが表示されず、フォントの測定が不可能になります。

どうすれば回避できますか?

PSビジュアルにはJLabelを使用する必要があります。