1

ユーザーの注意が必要なタブのマーカーを使用して JTabbedPane を作成しようとしています。設定ダイアログに使用されます。
これは、背景色がタブの選択に関係なく動的に変更可能であることを意味します。

要素の検証は機能しています (たとえば、無効なテキスト フィールドの周りの赤い境界線) が、背景色を設定して含まれているタブをマークするのに問題があります。含まれているタブを見つけて無効な状態を伝播するコードの準備が整いました。唯一のことはsetBackgroundAt(index, Color);、まったく効果がないということです。
ステートメントに到達し、インデックスが正しいことを確認しました。しかし、何も起こりません。どちらrepaint();も役に立ちませんSwingUtilities.updateComponentTreeUI(this);でした。

さまざまなタブにさまざまな色を付けている人々の例をいくつか見つけました。これは私が始めたものです: Java swing を使用して JTabbedPane のタブを色付けする

しかし、私が見つけたすべての例は (JFrame を表示する前に) 静的に色を設定し、さらに悪いことに、選択したタブの背景色が消えてしまいます。

私のアプリケーションではルック アンド フィールも選択できるため、ソリューションは L&F に依存しない必要があります。

ところで:背景の代わりにタブの周りの赤い境界線もできます.

4

1 に答える 1

2

「ソリューションは L&F に依存しない必要があります」が、タブ付きペインの UI デリゲートは、タブの外観をかなり制御します。指定されたデリゲートは、独自のカラー設定を優先して自由に無視できます。目標は「ユーザーの注意が必要なタブのマーカー」であるため、チュートリアルに示されているカスタム コンポーネントまたはアイコンも検討してください。特に、TabComponentsDemoはインタラクティブ コンポーネントをタブに追加する方法を示しており、このではアニメーション化されたアイコンを示しています。

于 2013-11-12T22:36:15.837 に答える