एक JTable JComponent . का उपवर्ग है वर्ग और इसका उपयोग कई पंक्तियों और स्तंभों . में प्रदर्शित जानकारी के साथ तालिका बनाने के लिए किया जा सकता है . जब किसी JTable से कोई मान चुना जाता है, तो एक TableModelEvent उत्पन्न होता है, जिसे एक TableModelListener . लागू करके नियंत्रित किया जाता है इंटरफेस। हम कोड को DefaultTableModel में अनुकूलित करके JTable सेल में JButton जोड़ या सम्मिलित कर सकते हैं या सारटेबल मॉडल और हम T . को लागू करके कोड को अनुकूलित भी कर सकते हैं सक्षम सेल रेंडरर इंटरफ़ेस और ओवरराइड करने की आवश्यकता है getTableCellRendererComponent() विधि।
उदाहरण
आयात करें निजी JScrollPane स्क्रॉलपैन; सार्वजनिक जेटीबलबटनटेस्ट () {सेटटाइट ("जेटेबलबटन टेस्ट"); टेबलसेलरेंडरर टेबलरेंडरर; तालिका =नया जेटीबल (नया जेटीबलबटन मॉडल ()); tableRenderer =table.getDefaultRenderer(JButton.class); table.setDefaultRenderer(JButton.class, new JTableButtonRenderer(tableRenderer)); स्क्रॉलपैन =नया JScrollPane (तालिका); जोड़ें (स्क्रॉलपेन, बॉर्डरलाउट। केंद्र); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); सेटलोकेशन रिलेटिव टू (अशक्त); सेटसाइज (400, 300); सेटविजिबल (सच); } सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {नया JTableButtonTest (); }}वर्ग JTableButtonRenderer TableCellRenderer को लागू करता है {निजी TableCellRenderer defaultRenderer; सार्वजनिक JTableButtonRenderer (TableCellRenderer रेंडरर) {डिफ़ॉल्ट रेंडरर =रेंडरर; } सार्वजनिक घटक getTableCellRendererComponent(JTable तालिका, ऑब्जेक्ट मान, बूलियन चयनित है, बूलियन हैफ़ोकस, इंट रो, इंट कॉलम) { अगर (घटक का मान उदाहरण) वापसी (घटक) मान; वापसी defaultRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); }}वर्ग JTableButtonModel AbstractTableModel {निजी ऑब्जेक्ट [] [] पंक्तियाँ ={{"बटन 1", नया JButton ("बटन 1")}, {"बटन 2", नया JButton ("बटन 2")}, {"बटन 3", नया बढ़ाता है। जेबटन ("बटन 3")}, {"बटन 4", नया जेबटन ("बटन 4")}}; निजी स्ट्रिंग [] कॉलम ={"गणना", "बटन"}; सार्वजनिक स्ट्रिंग getColumnName (इंट कॉलम) {रिटर्न कॉलम [कॉलम]; } सार्वजनिक int getRowCount () { वापसी पंक्तियाँ। लंबाई; } सार्वजनिक int getColumnCount () { वापसी कॉलम। लंबाई; } सार्वजनिक वस्तु getValueAt (इंट रो, इंट कॉलम) {रिटर्न रो [पंक्ति] [कॉलम]; } पब्लिक बूलियन isCellEditable (इंट रो, इंट कॉलम) {रिटर्न फॉल्स; } पब्लिक क्लास getColumnClass(int column) {रिटर्न getValueAt(0, column).getClass(); }}आउटपुट