2010-05-29 15 views
5

मैंने अपने jtable पर माउस क्लिक किए गए श्रोता को जोड़ा, जब मैं पंक्ति पर डबल क्लिक करता हूं, तदनुसार एक विंडो पॉप अप करेगा।जेटीबल श्रोता समस्या

jTable.addMouseListener(new java.awt.event.MouseAdapter() { 
public void mouseClicked(java.awt.event.MouseEvent e) { 
double amount = Double.parseDouble(jTable.getValueAt(getSelectedRow(), 4).toString()); 
String remarks = jTable.getValueAt(getSelectedRow(), 3).toString(); 
String transactionID = jTable.getValueAt(getSelectedRow(), 1).toString(); 
     new EditFrame(...) 
} 
}); 

यह कोड मैं पंक्ति चयनित पंक्ति को पुनर्प्राप्त करने के लिए उपयोग करता था।

public int getSelectedRow() { 
jTable.getSelectionModel().addListSelectionListener(
new ListSelectionListener() { 
public void valueChanged(ListSelectionEvent event) { 
    int viewRow = jTable.getSelectedRow(); 
    selectedRow = viewRow; 
    System.out.println(viewRow); 
} 
}); 
return selectedRow; 
} 

मेरे मामले में, मुझे एहसास हुआ कि जब मैं पहली बार में दूसरी पंक्ति क्लिक किया है, मैं selectedRow के लिए अशक्त हो, केवल जब मैं तो दूसरी पंक्ति पहली पंक्ति का चयन करें, मैं तो सही डेटा प्राप्त कर सकते हैं। और अगर मैंने माउस श्रोता को हटा दिया तो समस्या हल हो जाएगी। क्या ऐसा इसलिए है क्योंकि मैं माउस क्लिक श्रोता पर कुछ गलत कर रहा हूं?

उत्तर

4

यदि आप सिर्फ यह जानना चाहते हैं कि कौन सी पंक्ति पर क्लिक किया गया था तो आपको चयन श्रोता की आवश्यकता नहीं है। बस उपयोग करें:

table.rowAtPoint(); 
+0

आप इसका उपयोग कैसे करेंगे? अनावश्यक रूप से अशिष्ट होने के लिए –

-1

आप इसे गलत तरीके से कर रहे हैं। अपने वर्तमान getSelectedRow() विधि को पूरी तरह से निकालें और कभी भी कुछ समान कोड करने का प्रयास न करें। यहां एक बेहतर संस्करण है:

jTable.addMouseListener(new java.awt.event.MouseAdapter() { 
public void mouseClicked(java.awt.event.MouseEvent e) { 
int selectedRow = jTable.getSelectedRow(); 
double amount = Double.parseDouble(jTable.getValueAt(selectedRow, 4).toString()); 
String remarks = jTable.getValueAt(selectedRow, 3).toString(); 
String transactionID = jTable.getValueAt(selectedRow, 1).toString(); 
     new EditFrame(...) 
} 
}); 
+4

-1। – Pops

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