2012-03-20 4 views
5

पर आधारित रंग पंक्तियों के लिए रंग हाइलाइटर का उपयोग करें। मैं जेक्टेबल का उपयोग कर रहा हूं और मुझे पता है कि यह JTable के लिए डिफ़ॉल्ट रेंडरर्स के आधार पर कैसे किया जाए, लेकिन मैं जानना चाहता हूं कि JXTable के तरीके में इसे कैसे करना है मित्रतापूर्वक हाइलाइटर पाइपलाइन पर आधारित है।स्विंगएक्स जेक्टेबल: "पंक्ति वस्तु"

मेरे पास तालिका में प्रदर्शित वस्तुओं की एक सूची है, और प्रत्येक पंक्ति एक वस्तु का प्रतिनिधित्व करती है। मैं एक निश्चित प्रकार की वस्तुओं को एक अलग रंग प्रदर्शित करने वाली पंक्तियों को रंगना चाहता हूं।

ऐसा लगता है कि मुझे ColorHighlighter का उपयोग करना चाहिए। लेकिन मुझे इसके लिए उदाहरण नहीं मिल सकते हैं, सरल हाइलाइटर्स के अलावा "रंग हर दूसरी पंक्ति" या ऐसी कुछ चीज़।

मुझे पंक्ति संख्या की आवश्यकता है क्योंकि JTable/TableModel प्रतिमान में "पंक्ति वस्तु" जैसी कोई चीज़ नहीं है, लेकिन यदि मैं ऐसा कर सकता हूं, तो मैं आसानी से भविष्यवाणी कर सकता हूं और हाइलाइटर को बताने के लिए सच/गलत लौटा सकता हूं लात मारो या नहीं।

क्या कोई मुझे काम करने के लिए सही दिशा जानने में मदद कर सकता है?

उत्तर

4

कोई बात नहीं, मैंने इसे समझ लिया। ComponentAdapter का उपयोग करने के तरीके को समझना मुश्किल था।

JXTable table = ... 
final List<Item> itemList = ... 

final HighlightPredicate myPredicate = new HighlightPredicate() { 
     @Override 
     public boolean isHighlighted(
      Component renderer, 
      ComponentAdapter adapter) { 

      Item item = itemList.get(adapter.row); 
      return testItem(item); 
     } 

     public boolean testItem(Item item) { ... } 
} 

ColorHighlighter highlighter = new ColorHighlighter(
     myPredicate, 
     Color.RED, // background color 
     null);  // no change in foreground color 

table.addHighlighter(highlighter); 
+1

खुशी है कि तुम एक समाधान पाया - बस सावधान रहना: adapter.row दृश्य-निर्देशांक में है, जबकि अपने itemList (संभवत:?) मॉडल-निर्देशांक में है, इसलिए परीक्षण गलत परिणाम वापस आ जाएगी, तो तालिका सॉर्ट हो जाता है /छाना हुआ। ठीक करने के लिए, adapter.convertRowIndexToModel – kleopatra

+0

ठीक है धन्यवाद - मैं GlazedLists सॉर्टिंग सुविधाओं का उपयोग करने के उद्देश्य से JXTable सॉर्टिंग को अक्षम कर रहा हूं, इसलिए मेरे सूचकांक अंतिम प्रदर्शित पंक्तियों के साथ सुसंगत हैं। हालांकि धन्यवाद! –

+0

पी। हाइलाइटर पाइपलाइनों के साथ क्या हुआ? क्या वे चले गए हैं? मैं JXTable हाइलाइटर्स पर सामान्य जानकारी ढूंढने की कोशिश कर रहा हूं और यह पुरानी सामग्री का एक यादृच्छिक संग्रह है। –

संबंधित मुद्दे