में पेंट विधि का उपयोग कैसे करें मैं जावा में एक स्लॉट मशीन पर काम कर रहा हूं और अब तक मैंने एक बटन बनाया है जो यादृच्छिक रूप से दो चित्र उत्पन्न करेगा। मेरा कोड संकलित करता है लेकिन जब मैं इसे चलाता हूं, तो पेंट विधि में रखी गई सभी चीज़ें दिखाई नहीं देती हैं। क्या मुझसे कुछ छूट रहा है? आपकी मदद के लिए धन्यवाद और यहां मेरा कुछ कोड है।जेपीनल
public void paint(Graphics g) {
super.paintComponents(g);
g.drawString("Int 1 is" + int1,30,30);
g.drawString("Int 2 is" + int2,30,80);
switch (int1) {
case 0:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img, 300, 500, this);
break;
case 1:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img2,300,500,this);
break;
case 2:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img3,300,500,this);
break;
case 3:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img4,300,500,this);
break;
case 4:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img5,300,500,this);
break;
case 5:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img6,300,500,this);
break;
case 6:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img7,300,500,this);
break;
case 7:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img8,300,500,this);
break;
case 8:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img9,300,500,this);
break;
case 9:
g.setColor(Color.white);
g.fillRect(300,300,300,500);
g.drawImage(img10,300,500,this);
break;
}
switch (int2) {
case 0:
g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img, 800, 500, this);
break;
case 1:
g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img2,800,500,this);
break;
case 2:
g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img3,800,500,this);
break;
case 3:
g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img4,800,500,this);
break;
case 4:
g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img5,800,500,this);
break;
case 5:
\ g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img6,800,500,this);
break;
case 6:
g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img7,800,500,this);
break;
case 7:
g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img8,800,500,this);
break;
case 8:
g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img9,800,500,this);
break;
case 9:
g.setColor(Color.white);
g.fillRect(300,300,800,500);
g.drawImage(img10,800,500,this);
break;
}
this.setVisible(true);
}
'स्विंग' से निपटने पर, किसी को इस तरह के कार्य के लिए 'पेंट' विधि के साथ नहीं खेलना चाहिए। पेंटिंग से संबंधित सामान करने के लिए कुछ 'जेकंपोनेंट/जेपीनल' की विधि 'पेंट कॉम्पोनेंट (...)' विधि को ओवरराइड करें। [कस्टम पेंटिंग प्रदर्शन] पर अधिक जानकारी (https://docs.oracle.com/javase/tutorial/uiswing/painting/)। सामान्य समस्याओं को हल करने के लिए पढ़ें, पहली समस्या यह बताएगी कि आप क्या गलत कर रहे हैं। उम्मीद है कि यह मदद करता है :-) –
यिक्स, आपकी 'पेंट' विधि 'super.paintComponents (...)' को करने के लिए एक बहुत ही खतरनाक चीज है।कृपया इस पर पेंटिंग ट्यूटोरियल पढ़ें क्योंकि यह सब बहुत अच्छी तरह समझाया गया है और उपरोक्त @nIcEcOw राज्यों के साथ बिल्कुल सहमत है। खुद, मैं बस जेएलएबल में प्रदर्शित छवि आइकन को स्वैप कर दूंगा। –
कृपया उत्तर देने के लिए संपादित करें देखें। –