पर राइट क्लिक करें मैं मजेदार के लिए जावा में एक माइन्सवीपर क्लोन लिखने की कोशिश कर रहा हूं। मेरे पास जेबट्टन का ग्रिड है जिसका लेबल मैं खतरे की गिनती, झंडे इत्यादि का प्रतिनिधित्व करने के लिए बदलूंगा।जेबटन
मेरी समस्या यह है कि मुझे नहीं पता कि बटन को निराश करने के लिए जेबटन पर राइट क्लिक कैसे करें। मैंने निम्नलिखित किया है:
button.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
boolean mine = field.isMine(x, y);
if (e.isPopupTrigger()) {
button.setText("F");
}
else {
if (mine) {
button.setText("X");
}
}
}
});
यह बिल्कुल काम नहीं कर रहा है; "एफ" कभी नहीं दिखाया जाता है, केवल "एक्स" भाग। लेकिन सबसे महत्वपूर्ण बात यह है कि यह बटन को निराश करने के लिए कुछ नहीं करता है।
संपादित करें: मैक के पास माउसप्रेस पर पॉपअप ट्रिगर होता है, माउस क्लिक नहीं।
संपादित करें:
button.addMouseListener(new MouseAdapter(){
boolean pressed;
@Override
public void mousePressed(MouseEvent e) {
button.getModel().setArmed(true);
button.getModel().setPressed(true);
pressed = true;
}
@Override
public void mouseReleased(MouseEvent e) {
//if(isRightButtonPressed) {underlyingButton.getModel().setPressed(true));
button.getModel().setArmed(false);
button.getModel().setPressed(false);
if (pressed) {
if (SwingUtilities.isRightMouseButton(e)) {
button.setText("F");
}
else {
button.setText("X");
}
}
pressed = false;
}
@Override
public void mouseExited(MouseEvent e) {
pressed = false;
}
@Override
public void mouseEntered(MouseEvent e) {
pressed = true;
}
});
add(button);
Minesweeper clone http://grab.by/1y9z
है और हाँ मुझे पता है अंतिम बोर्ड उन सभी नंबरों को दिखाया नहीं होना चाहिए। मैं बस विकास कर रहा हूँ। – I82Much
आपको इस 'popupTrigger' सामान के लिए क्या चाहिए? बस घटनाओं की जांच करें माउस दबाए रखें और BUTTON1_MASK या BUTTON2_MASK के लिए ईवेंट के संशोधक जांचें। –