JLabel
(レンダラー自体はJPanel
に拡張されています)で構成されたシンプルアッシュセルレンダラーを持っていて、それをNimbusの外観で目立つようにレンダリングしようとしています感じる。基本的に何が起こっていること(ニンバスは着色代替の行を有するもの)ライター列に、私の特定のセルレンダラーは、(両方のライターよりもはるかに暗い暗い行色)テーブルの背景色を使用していることです。私のレンダラでは私が行いますNimbusのルックアンドフィールのためのシンプルなセルレンダラーを設計する
if (isSelected) {
setBackground(table.getSelectionBackground);
}
else {
setBackground(table.getBackground);
}
私はこのコードのブロック全体をコメントする場合は、その後、私のすべての行が暗い行に色(ないテーブルの背景ではなく、別の色のいずれかで)です。私は何が起こっているのかを理解しているのか分からない!上記のコードスニペットは、背景色の異なるセルをどのように生成しますか?私のメソッドの呼び出しの間でtable.getBackground
の色が変化していますか?私はこのコードのスニペットを使用してみました
:
DefaultTableCellRenderer
クラスである Color alternateColor = sun.swing.DefaultLookup.getColor(
peer,
peer.getUI,
"Table.alternateRowColor");
if (alternateColor != null && row % 2 == 0)
setBackground(alternateColor);
。そして、それはまったく影響を及ぼさないようです。誰もNimbusで動作するカスタムセルレンダラを持っていますか?
EDITは:誰もが興味を持っている場合は、私が実際にスカラ座、いないのJavaを使用していたように、これは、Scalaの表のセルレンダラーに問題があることが判明しました。受け入れられた答えは、Javaプログラムでうまく動作します。別の質問hereを提出した。
はい - これは私が試したし、それが動作しませんでした正確に*何*です。しかし、実際にはJavaではなくScalaを使用していますので、Javaで簡単なテストケースを公開することにしました。ほんとありがと。残念ながら、Scalaではなぜそれがうまくいかないのか分かりません。 –
私はスカラ座について多くを知らないにもかかわらず、私はそれが動作してはならない理由が表示されません。スウィングは、スカルでも、スカルです。 –
これは本当に 'if(行%2 == 1){'です。 – cimnine