سؤال

لدي مصادقة خلية ISH البسيطة التي تتكون من عدد قليل JLabelS (يمتد العارض نفسه JPanel) وأنا أحاول الحصول عليه من أجل التجسيد بشكل معقول في نيمبوس الشكل والشعور. أساسا ما يحدث هو ذلك في ولاعة الصفوف (كما نيمبوس لديه تلوين الصف البديل)، فإن عارض الخلية المحددة هو استخدام لون خلفية الجدول (وهو أغمق بكثير من كل من أخف وزنا وأغمق صف الألوان). في مصاددي أفعل:

if (isSelected) {
    setBackground(table.getSelectionBackground);
}
else {
    setBackground(table.getBackground);
}

إذا قمت بتعليق هذه الكتلة كلها من التعليمات البرمجية، فبعد ذلك، تكون كل صفوفي في أغمق صف اللون (وليس خلفية الجدول، ولكن ليس في الألوان البديلة أيضا). لست متأكدا من أنني أفهم حتى ما يمكن أن يحدث! كيف هي المقتطف أعلاه من الخلايا المنتجة للرمز مع ألوان خلفية مختلفة على الإطلاق؟ هل table.getBackground تغيير اللون بين تداعيات طريقتي؟

لقد حاولت استخدام هذا القصاص من التعليمات البرمجية:

Color alternateColor = sun.swing.DefaultLookup.getColor(
                         peer, 
                         peer.getUI, 
                         "Table.alternateRowColor");
if (alternateColor != null && row % 2 == 0)
    setBackground(alternateColor);

وهو في DefaultTableCellRenderer صف دراسي. ويبدو أنه ليس له أي تأثير على الإطلاق. هل حصل أي شخص على عارض الخلية المخصصة مع نيمبوس؟

تعديل: إذا كان أي شخص مهتما، فقد تحول هذا مشكلة مع سكالا عارض خلية الجدول، كما كنت في الواقع استخدام Scala، وليس جافا. الجواب المقبول أدناه يعمل بشكل جيد فقط في برنامج Java. سؤال منفصل قدم هنا.

هل كانت مفيدة؟

المحلول

أول قطعة من التعليمات البرمجية إذا كانت جيدة. أعتقد أن عليك استخدام UIManager.getColor("Table.alternateRowColor") بالنسبة للصفاء البديل والجدول .getBackground () خلاف ذلك. لاستخدام الصف المحدد Table.getSelectionBackground (). لذلك قد تبدو الكود الخاص بك

if (isSelected) {
    setBackground(table.getSelectionBackground());
}
else {
    if ( row % 2 == 0 ) {
       setBackground(UIManager.getColor("Table.alternateRowColor"));
    } else { 
       setBackground(table.getBackground());
    }
}

لا تنس التأكد من أن لوحةك مبهمة والملصقات شفافة.

فيما يلي رابط جيد لإعدادات Nimbus UI:http://www.duncanjauncey.com/java/ui/uimanager/uidefaults_java1.6.0_11_windows_2000_5.0_nimbus.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top