2010-02-19 18 views
9

नीचे दिए गए उदाहरण कोड के साथ:जेटीबल के लिए हेडर सेट कैसे करें?

String column_names[]= {"Serial Number","Medicine Name","Dose","Frequency"}; 
table_model=new DefaultTableModel(column_names,3); 
table=new JTable(table_model); 

हम ऊपर कोड के साथ COLUMN_NAMES में के रूप में स्तंभों के नाम के साथ शीर्ष लेख सेट करना चाहते हैं लेकिन यह काम नहीं कर रहा है। मेजबान बनने के बावजूद हैडर दिखाई नहीं दे रहा है।

+2

दिशानिर्देशों के अनुसार, आपको '_' के स्तर पर camelCase का उपयोग करना चाहिए: tableModel और columnNames। Http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html देखें – Fortega

उत्तर

25

शीर्षलेख देखने में सक्षम होने के लिए, आपको तालिका को JScrollPane में रखना चाहिए।

panel.add(new JScrollPane(table)); 

या आप विशेष रूप से यदि आप वास्तव में एक Scrollpane नहीं करना चाहती अपने पैनल के लिए tableHeader जोड़ सकता है (लेकिन: सामान्य रूप से आप इस व्यवहार नहीं करना चाहते हैं): JTable एपीआई पढ़ें

panel.add(table.getTableHeader(), BorderLayout.NORTH); 
panel.add(table, BorderLayout.CENTER); 
1

और काम करने वाले उदाहरण के लिए "टेबल्स का उपयोग कैसे करें" पर स्विंग ट्यूटोरियल के लिंक का पालन करें। चाल एक JScrollPane में तालिका जोड़ने के लिए है।

2

See here for more information about JTables and TableModels

JTable हेडर केवल दिखाई जाती है जब टेबल एक स्क्रॉल फलक, जो आमतौर पर है कि क्या तुम वैसे भी करना चाहता हूँ में है मिलता है। किसी कारण से, आप एक स्क्रॉल फलक के बिना एक मेज दिखाने की जरूरत है, तो आप कर सकते हैं:

panel.setLayout(new BorderLayout()); 
panel.add(table, BorderLayout.CENTER); 
panel.add(table.getTableHeader(), BorderLayout.NORTH); 
1
MessageFormat header = null; 

if (this.headerBox.isSelected()) 
{ 
    header = new MessageFormat(gradesLabel.toString()); 
} 

MessageFormat footer = null; 

if (this.footerBox.isSelected()) 
{ 
    footer = new MessageFormat(this.footerField.getText()); 
} 

boolean fitWidth = this.fitWidthBox.isSelected(); 
boolean showPrintDialog = this.showPrintDialogBox.isSelected(); 
boolean interactive = this.interactiveBox.isSelected(); 

JTable.PrintMode mode = fitWidth ? JTable.PrintMode.FIT_WIDTH : 
    JTable.PrintMode.NORMAL; 
try 
{ 
    boolean complete = this.gradesTable.print(mode, header, footer, 
    showPrintDialog, null, 
    interactive, null); 

    if (complete) 
    { 
    JOptionPane.showMessageDialog(this, 
     "Printing Complete", 
     "Printing Result", 
     1); 
    } 
    else 
    JOptionPane.showMessageDialog(this, 
     "Printing Cancelled", 
     "Printing Result", 
     1); 
} 
catch (PrinterException pe) 
{ 
    JOptionPane.showMessageDialog(this, 
    "Printing Failed: " + pe.getMessage(), 
    "Printing Result", 
    0); 
} 

असल में JTable वस्तु एक विधि है, जो प्रिंट() menthod, जो पारित करने के लिए प्रयोग किया जाता है है प्रिंट करने के लिए पैरामीटर के रूप में हेडर और पाद लेख यहां हेडरबॉक्स जेकेकबॉक्स है जिसे मैंने अपने प्रोग्राम में बनाया है और यहां कुछ जब्बेल भी हैं। यदि आपको इसकी आवश्यकता नहीं है तो इसका मतलब है कि इस कोड से उन्हें हटा दें और प्रोग्राम

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