मैं एक JLabel
का उपयोग करके एक छवि प्रदर्शित करने का प्रयास करता हूं। यह मेरा प्रोजेक्ट नेविगेटर है:
से SettingsDialog.java
मैं निम्नलिखित कोड का उपयोग करके एक चित्र प्रदर्शित करना चाहता हूं:
स्ट्रिंग पथ = "/images/sidebar-icon-48.png"; फ़ाइल फ़ाइल = नया फ़ाइल (पथ); छवि छवि; कोशिश {image = imageIO.read (फ़ाइल); जेएलैबल लेबल = नया जेएलैबेल (नया इमेज़न (छवि)); header.add (लेबल); // हैडर एक जेपीएनएल है) कैच (आईओई एक्सप्शन ई) {// TODO ऑटो-जेनरेट कैच ब्लॉक e.printStackTrace (); }
कोड एक अपवाद फेंकता है: इनपुट फ़ाइल नहीं पढ़ सकता!
क्या छवि का पथ गलत है?
किसी फ़ाइल से नहीं पढ़ा, वर्ग पथ से पढ़ें
Image = imageIO.read (getClass ()। GetResource (पथ)); -या- image = ImageIO.read (MyClass.class.getResource (पथ));
जब आप फ़ाइल
ऑब्जेक्ट का उपयोग करते हैं, तो आप फ़ाइल सिस्टम से पढ़ने के लिए प्रोग्राम को कह रहे हैं, जो आपके पथ को अमान्य बना देगा। जिस पथ का आप उपयोग कर रहे हैं है हालांकि सही है, जब कक्षा पथ से पढ़ते समय, जैसा कि आप चाहिए हो।
विकी पर देखें।
UPDATE टेस्ट रन
पैकेज org.apache.openoffice.sidebar; आयात javax.swing। *; पब्लिक क्लास कुछ क्लास {सार्वजनिक कुछ क्लास () {इमेज़ आइकन आइकन = नया इमेज़न (कुछ क्लास। क्लास। मेट्रिक्स ("/ images / sidebar-icon-48.png")); जेएलैबल लेबल = नया जेएलैबल (आइकन); जेफ्रेम फ्रेम = नया जेफ्राम ("टेस्ट"); frame.add (लेबल); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); frame.pack (); frame.setLocationByPlatform (सही); frame.setVisible (सही); } सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {SwingUtilities.invokeLater (नया रननाबल) (सार्वजनिक शून्य चला () {नया SomeClass ();}}); }}
Comments
Post a Comment