इसलिए मेरे पास यह जेबूटन है जिसमें मैं आइकन जोड़ता हूं। शुरुआत में आइकन बहुत बड़े होते हैं, इसलिए मैं उन्हें पहले से आकार देता हूं, और यह ठीक काम करता है। सिवाय इसके कि जब मैं खिड़की का आकार बदलता हूं, तो जेबुटन आकार बदलते हैं, लेकिन प्रतीक नहीं, जो समस्याग्रस्त है।स्वत: आकार बदलने वाला जेबटन आइकन
क्या कोई आइकन रखने का कोई तरीका है जो जुबटन को संलग्न करता है? कोड की बिट यह स्पष्ट करने के:
public JewelClass(){
setBackground (new Color (30,30,30));
addActionListener(this);
setLayout(new GridLayout());
ImageIcon icon = new ImageIcon(src/carre.jpg);
setIcon (resizeIcon(icon,60,60));
}
resizeIcon एक निजी समारोह, कि एक चिह्न, चौड़ाई पैरामीटर और ऊंचाई पैरामीटर लेता जा रहा है, और एक आकार दिया चिह्न (जाहिर है) वापस जाएँ। मैंने लेआउट को बदलने की कोशिश की, लेकिन यह कुछ भी नहीं बदलेगा। मैंने जेबटन की चौड़ाई/ऊंचाई प्राप्त करने का प्रयास किया, लेकिन जब तक आइकन जोड़ा नहीं जाता है तब तक वे मौजूद नहीं होते हैं, यह काम नहीं करता है।
क्या आप लोगों को यह पता होना चाहिए कि इसे कैसे प्राप्त किया जाए? यह एक आइकन होना जरूरी नहीं है, जब तक कि मेरा जेबटन छवि से भरा हुआ हो, मैं इसे भयानक करता हूं, यह कमाल है :)
धन्यवाद!
एक सरल दृष्टिकोण के लिए, 'int margin = 0 में बदलें; आयाम मंद = this.getParent()। GetSize(); प्राप्त करने के लिए 'getMinimumSize() 'और' getPreferredSize() 'ओवरराइड करने की आवश्यकता के बिना, मूल घटक के मार्जिन पहले से ही –
सेट सेट कर चुके हैं! तो यह एक आकार पेंट करने के लिए काम करता है, लेकिन एकमात्र चीज है, एक बार जब मैं 'g.setColor (Color.red) को प्रतिस्थापित करता हूं; g.fillRect (मार्जिन, मार्जिन, dim.width - मार्जिन * 2, dim.height - मार्जिन * 2); 'आइकन आइकन = नया छवि आइकन (" src/triangle.jpg "); icon.paintIcon (यह, जी, 60, 60); ' , यह कुछ भी प्रदर्शित करना बंद कर देता है। क्या आपको कोई विचार है कि यह क्यों है? –
@Mikalichov कृपया मेरे संपादन को देखें – mKorbel