2011-10-15 10 views
7

मैं कोशिश की है:मैं जेटीबल के हेडर पृष्ठभूमि रंग को कैसे बदल सकता हूं?

table.getTableHeader().setBackground(Color.BLACK); 

काम नहीं करता।

संपादित करें: यह कोड केवल मेरे प्रोजेक्ट में काम नहीं करता है। अन्य परियोजनाओं में काम करता है। मैंने ऐसी संपत्ति बदल दी हो जो रंग बदलने से रोकती है। या शायद नेटबीन की कुछ संपत्ति है जो डिफ़ॉल्ट रंग रखती है। मैंने कुछ और देखा है। मेरी परियोजना में हेडर का रंग एक अलग तरीके से चमक रहा है। उदाहरणों में जहां रंग परिवर्तन काम करता है, मैं अलग-अलग ग्राफिक्स देखता हूं।

संपादित 2: कुछ और। मैंने देखा कि बटन या तो रंग नहीं बदलेगा। कुछ सामान्य होना चाहिए। उम्मीद है की यह मदद करेगा। दुर्भाग्य से एसएससीसीई इस मामले में काम नहीं करेगा, क्योंकि मैं समस्या को फिर से नहीं बना सकता। मैं निश्चित रूप से सही घटक नामों का उपयोग कर रहा हूँ।

+0

यह भी देखें [मैं JTable के JTableHeader में नियंत्रण कैसे रख सकता हूं?] (Http://stackoverflow.com/questions/7137786/how-can-i-put-a-control-in-the-jtableheader -of-एक-JTable)। – trashgod

+0

इसका नेटबीन के साथ कुछ डिफ़ॉल्ट रंग रखने और आपके कोड में किसी बग के साथ करने के लिए कुछ भी नहीं है, लेकिन केवल कथन के साथ "यह कोड केवल मेरे प्रोजेक्ट में काम नहीं करता है", और बिना किसी कोड के, अधिमानतः एक एसएससीसी, मुझे संदेह है कि हममें से कोई भी आपको थोड़ा और गहराई से डीबग करने का प्रयास करने के अलावा आपको और मदद दे सकता है। शायद जिस तालिका में आप हेडर रंग बदलने की कोशिश कर रहे हैं वह वही टेबल ऑब्जेक्ट नहीं है जो प्रदर्शित होता है, लेकिन बिना समझने योग्य और अधिमानतः संकलित कोड के बिना, यह मेरे हिस्से पर सिर्फ एक SWAG है? –

उत्तर

1

इसे हल किया गया। NetBeans में:

  • अधिकार परियोजना के नाम पर क्लिक
  • गुण
  • आवेदन - डेस्कटॉप अनुप्रयोग
  • देखो और महसूस: चुनें 'जावा डिफ़ॉल्ट' (सिस्टम डिफ़ॉल्ट के साथ काम नहीं किया)
  • प्रोजेक्ट

से पहले साफ और पुनर्निर्माण करना याद रखें, पूरे प्रोजेक्ट के ग्राफिक्स भी दिखाई देते हैं।

+0

ऐसा लगता है कि यह विकल्प केवल नेटबीन परियोजनाओं के लिए उपलब्ध है ['जावा डेस्कटॉप एप्लिकेशन'] (http://stackoverflow.com/questions/2561480/netbeans-gui-editor- जनरेटिंग-its-own-incomprehensible-code/ 2561540 # 2561540)। टैग [टैग: jsr296] को शामिल करने के लिए प्रश्न को अद्यतन करने पर विचार करें। – trashgod

+0

मुझे अभी भी लगता है कि इसे कोड में हल किया जा सकता है, कि आप सही संदर्भ के लिए संपत्ति सेट नहीं कर रहे हैं। –

+0

मेरा सुझाव है कि आप स्रोत प्रोजेक्ट * के साथ अपनी परियोजना * जार करें और इसे कहीं भी अपलोड करें, फिर देखते हैं कि हम इसे देखें। –

11

यह मेरे लिए काम करता है। यहाँ मेरी SSCCE है:

import java.awt.*; 
import javax.swing.*; 
import javax.swing.table.*; 

public class TableHeaderBackground { 
    public static void main(String[] args) { 
     Integer[][] data = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; 
     String[] cols = {"A", "B", "C"}; 

     JTable table = new JTable(data, cols); 

     JTableHeader header = table.getTableHeader(); 
     header.setBackground(Color.black); 
     header.setForeground(Color.yellow); 

     JOptionPane.showMessageDialog(null, new JScrollPane(table)); 
    } 
} 

यदि यह आप में मदद नहीं करता, तो मैं सुझाव है कि आप बना सकते हैं और पोस्ट अपने खुद के SSCCE तो हम देख सकते हैं कि क्या गलत है।

+1

यह वास्तव में काम करता है। मेरी मेज के लिए हालांकि यह काम नहीं करता है। संपादित करें देखें। –

3

तालिका शीर्षलेख तालिका कक्षों की तरह एक रेंडरर घटक का भी उपयोग करता है। इस पर

देखो:

table.getTableHeader().setDefaultRenderer(new DefaultTableRenderer(){ 
    { 
    // you need to set it to opaque 
    setOpaque(true); 
    } 

@Override 
public Component getTableCellRendererComponent(final JTable table, 
    final Object value, final boolean isSelected, final boolean hasFocus, 
    final int row, final int column) { 
    // set the background 
    setBackground(yourDesiredColor); 
    } 
}); 

आप एक गतिशील रंग की जरूरत नहीं है, तो आप भी रेंडरर के निर्माता में रंग सेट कर सकते हैं।

5

मैं तुम्हें यह करने के लिए सलाह देते हैं:

DefaultTableCellRenderer headerRenderer = new DefaultTableCellRenderer(); 
headerRenderer.setBackground(new Color(239, 198, 46)); 

for (int i = 0; i < myJTable.getModel().getColumnCount(); i++) { 
     myJTable.getColumnModel().getColumn(i).setHeaderRenderer(headerRenderer); 
} 
7

... table.getTableHeader() इस प्रयास करें setOpaque (गलत);। ।

तो JTable हैडर

table.getTableHeader() setBackground (Color.BLACK) की पृष्ठभूमि सेट;

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

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