यह एक बहुत ही साधारण बात हो सकती है जिसे मैं देख रहा हूं, लेकिन मुझे लगता है कि मैं इसे समझ नहीं पा रहा हूं।JOptionPane.showMessageDialog ठीक है जब तक ठीक क्लिक नहीं किया जाता है?
मैं निम्न विधि एक JTable अपडेट कर देता है:
class TableModel extends AbstractTableModel {
public void updateTable() {
try {
// update table here
...
} catch (NullPointerException npe) {
isOpenDialog = true;
JOptionPane.showMessageDialog(null, "No active shares found on this IP!");
isOpenDialog = false;
}
}
}
हालांकि, मैं नहीं चाहिए isOpenDialog
बूलियन संदेश संवाद में ठीक बटन पर जब तक गलत पर सेट होने के लिए दबाया जाता है, क्योंकि एक उपयोगकर्ता अगर प्रेस दर्ज करें यह एक टेक्स्टफील्ड पर KeyListener
ईवेंट सक्रिय करेगा और यह false
पर सेट होने पर कोड के पूरे ब्लॉक को फिर से ट्रिगर करता है।
KeyListener कोड का एक हिस्सा नीचे दिखाया गया है:
public class KeyReleased implements KeyListener {
...
@Override
public void keyReleased(KeyEvent ke) {
if(txtIPField.getText().matches(IPADDRESS_PATTERN)) {
validIP = true;
} else {
validIP = false;
}
if (ke.getKeyCode() == KeyEvent.VK_ENTER) {
if (validIP && !isOpenDialog) {
updateTable();
}
}
}
}
है JOptionPane.showMessageDialog()
तंत्र कि अगली पंक्ति को क्रियान्वित जब तक ठीक बटन दबाया जाता है रोकता है किसी प्रकार का है? धन्यवाद।
स्विंग आपरेशन (जैसे एक संवाद खोलने के रूप में) इस उदाहरण कार्यक्रम पर एक नज़र, स्पष्टीकरण के लिए है EventDispatchThread –
में होना चाहिए शोर के साथ सहमत: कोड इस तरह का नहीं है स्विंग एप्लिकेशन में यह स्विंग थ्रेडिंग नियमों को पूरी तरह से अनदेखा करता है। –
यहां तक कि मैं मानता हूं कि स्विंग ऑपरेशन इवेंट डिस्पैचर थ्रेड में होना चाहिए, स्विंग एप्लिकेशन शेड्यूल में मुख्य() विधि के रूप में ईवेंट डिस्पैचर थ्रेड और क्विट्स में जीयूआई का निर्माण। लेकिन पुस्तकों में वर्णित नियम आदर्श दुनिया के लिए हैं, और कभी-कभी काम करने के लिए किसी को विद्रोही होने की आवश्यकता होती है। –