मैंने एक स्विंग जीयूआई बनाया है जिसमें कुछ पंक्तियों और स्तंभों के साथ जेटीबल है। मुझे जेटीबल में पंक्ति में एक बटन कैसे जोड़ना चाहिए?स्विंग जावा में जेटीबल की पंक्ति में बटन कैसे जोड़ें
उत्तर
आप इसे एक पंक्ति में नहीं जोड़ते - आप इसे सेल में जोड़ते हैं। This tutorial आपको बताता है कि आपको क्या चाहिए।
Table Button Column एक दृष्टिकोण दें।
आप एक तालिका कक्ष के रूप में घटक जोड़ सकते हैं।
सबसे पहले, आपको एक कक्षा को लागू करना चाहिए जिसमें जेबटन को मूल वर्ग और दो इंटरफेस हैं जो TableCellRenderer और TableCellEditor हैं।
टेबलसेल एडिटर को लागू करने का कारण बटन के एक्शनवेन्ट प्राप्त करने के लिए है।
public class TableButton extends JButton implements TableCellRenderer, TableCellEditor {
private int selectedRow;
private int selectedColumn;
Vector<TableButtonListener> listener;
public TableButton(String text) {
super(text);
listener = new Vector<TableButtonListener>();
addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
for(TableButtonListener l : listener) {
l.tableButtonClicked(selectedRow, selectedColumn);
}
}
});
}
public void addTableButtonListener(TableButtonListener l) {
listener.add(l);
}
public void removeTableButtonListener(TableButtonListener l) {
listener.remove(l);
}
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row, int col) {
return this;
}
@Override
public Component getTableCellEditorComponent(JTable table,
Object value, boolean isSelected, int row, int col) {
selectedRow = row;
selectedColumn = col;
return this;
}
@Override
public void addCellEditorListener(CellEditorListener arg0) {
}
@Override
public void cancelCellEditing() {
}
@Override
public Object getCellEditorValue() {
return "";
}
@Override
public boolean isCellEditable(EventObject arg0) {
return true;
}
@Override
public void removeCellEditorListener(CellEditorListener arg0) {
}
@Override
public boolean shouldSelectCell(EventObject arg0) {
return true;
}
@Override
public boolean stopCellEditing() {
return true;
}
}
फिर, मैं निम्नलिखित के रूप में बटन घटना से निपटने के लिए TableButtonListener नाम के एक EventListener गयी।
public interface TableButtonListener extends EventListener {
public void tableButtonClicked(int row, int col);
}
और उपरोक्त रेंडरर/संपादक का उपयोग करें।
TableButton buttonEditor = new TableButton("Button");
buttonEditor.addButtonListener(new TableButtonListener() {
@Override
public void tableButtonClicked(int row, int col) {
// do something
}
});
TableColumn col = new TableColumn(1, 80);
col.setCellRenderer(buttonEditor);
col.setCellEditor(buttonEditor);
cols.addColumn(colPattern);
आप प्रत्येक पंक्ति के लिए अलग बटन के लेबल प्रदर्शित करना चाहते हैं, तो आप getTableCellRendererComponent और getTableCellEditorComponent बटन के लेबल को संशोधित करने के लिए है जो में कोड ब्लॉक सम्मिलित करना चाहिए।
संपादित करें: कोड अब संकलित करता है। टेबलबटन कन्स्ट्रक्टर में ब्रैकेटिंग त्रुटि तय की गई।
मदद के लिए धन्यवाद xrath। –
-1 यह सेलएडिटर का अवैध कार्यान्वयन है: द्वारा अनुबंध, यह _must_ पंजीकृत सेलएडिटर लिस्टेनर्स को सूचित करता है। जो addEditorListener के खाली कार्यान्वयन के साथ यह मामूली रूप से नहीं हो सकता है ;-) सुपर कॉन्ट्रैक्ट _must_ कार्यान्वयन द्वारा परोसा जाता है, कोई रास्ता नहीं। – kleopatra
मैंने कोशिश की, और मुझे मिला .... अपरिभाषित परिवर्तनीय 'श्रोता' ... वह क्या है? :( – gumuruh
- 1. जेटीबल में पंक्ति कैसे जोड़ें?
- 2. जेटीबल की पंक्तियों में टूलटिप्स कैसे जोड़ें
- 3. जावा स्विंग में मुस्कुराहट कैसे जोड़ें?
- 4. जावा स्विंग - एक जेटीबल में एकाधिक कॉलम हेडर?
- 5. स्विंग में पुस्तकालय की तरह एक्सेल स्प्रेडशीट (= बेहतर जेटीबल)
- 6. जावा स्विंग बटन रंग
- 7. स्विंग जावा
- 8. सूची के प्रत्येक पंक्ति में एक बटन कैसे जोड़ें?
- 9. स्विंग के जेटीबल और जेटीआर
- 10. जेटीबल पंक्ति शीर्षलेख कार्यान्वयन
- 11. एक जेटीबल पंक्ति
- 12. जावा स्विंग - सबसे छोटा बटन
- 13. जावा स्विंग जेटीबल; राइट क्लिक मेनू (मैं इसे "चयन" उर्फ पंक्ति में हाइलाइट करने के लिए कैसे प्राप्त करूं)
- 14. बटन समूह में रेडियो बटन कैसे जोड़ें?
- 15. सेटिंग्स.बंडल में बटन कैसे जोड़ें?
- 16. जावा में जेटीबल पर डबल क्लिक श्रोता
- 17. जावा - जेटीबल
- 18. स्विंग
- 19. जावा में किसी मौजूदा फ़ाइल में टेक्स्ट की एक नई पंक्ति कैसे जोड़ें?
- 20. JTable (स्विंग) में वर्तमान में चयनित पंक्ति को प्रोग्रामेटिक रूप से अचयनित कैसे करें?
- 21. डेटाग्रिडव्यू में नई पंक्ति कैसे जोड़ें?
- 22. मौजूदा QTableWidget में नई पंक्ति कैसे जोड़ें?
- 23. कोड की 1 पंक्ति में सी # डेटाटेबल में एक नई पंक्ति कैसे जोड़ें?
- 24. नेविगेशनबार में एकाधिक बटन कैसे जोड़ें?
- 25. कॉम्पैक्ट फ्रेमवर्क डेटाग्रिड में बटन कैसे जोड़ें?
- 26. एंड्रॉइड में शेयर बटन कैसे जोड़ें?
- 27. जावा: स्विंग में डबल-बफरिंग कैसे करें?
- 28. जावा स्विंग में वर्तमान विंडो आकार की जांच कैसे करें?
- 29. बटन पर क्लिक करके नई एएसपी.NET तालिका पंक्ति कैसे जोड़ें?
- 30. फोनगैप में बटन पर फ़ंक्शन कैसे जोड़ें?
ठीक है, धन्यवाद Droidln.net –
धन्यवाद करने की कोई ज़रूरत नहीं है, बस निशान पर निशान लगाएं :) – Bostone
waw! मैंने अभी उस उदाहरण को खोला और महसूस किया कि स्रोत कोड ने सेलएडिटर को "नया जेकेकबॉक्स" जोड़ा। लेकिन वास्तव में यह जेबटन के रूप में प्रस्तुत किया गया। वैसे भी, मेरा सवाल यह है कि, हमें जेकेकबॉक्स क्यों डालना चाहिए? :( – gumuruh