2010-05-31 12 views
10

मैं अपने जावा एप्लिकेशन में एक छवि प्रदर्शित करना चाहता हूं। मुझे वेबसर्वर से छवि डाउनलोड करने और इसे jframe में दिखाने के लिए एक कोड मिला।जावा एप्लिकेशन में कोई छवि कैसे प्रदर्शित करें

मैं छवि या कुछ और दिखाने के लिए एक लेबल का उपयोग करना चाहता हूं। यह जेफ्रेम नहीं होना चाहिए।

Image image = null; 
try { 
    URL url = new URL(
     "http://www.personal.psu.edu/acr117/blogs/audrey/images/image-2.jpg"); 
    image = ImageIO.read(url); 
} catch (IOException e) { 
} 

// Use a label to display the image 
JFrame frame = new JFrame(); 

JLabel lblimage = new JLabel(new ImageIcon(image)); 
frame.getContentPane().add(lblimage, BorderLayout.CENTER); 
frame.setSize(300, 400); 
frame.setVisible(true); 

कोई मेरी मदद कर सकते:

यहाँ मेरी कोड है?

+1

अपने कोड काम नहीं करता है या नहीं? क्या आपने इसे आजमाया? यदि यह काम नहीं करता है, तो क्या गलत है - क्या आपको एक त्रुटि संदेश मिलता है, या ऐसा लगता है कि आप अपेक्षा करते हैं? आपके द्वारा प्रदान किए जाने वाले अधिक विवरण, बेहतर लोग आपकी मदद कर सकते हैं। – Jesper

+0

कोड वही करता है जो आप वर्णन करते हैं। छवि लेबल lblimage में दिखाया गया है। आप लेबल को जेपीन में डाल सकते हैं और यह काम करेगा। आपको क्या लगता है कि काम नहीं कर रहा है? – openCage

+0

कोई काम नहीं कर रहा है। लेकिन यह फ्रेम में दिखाता है। लेकिन मैं यह छवि किसी लेबल या कुछ में दिखाना चाहता हूं। तो मैं आकार और सभी समायोजित कर सकते हैं। मैं इस छवि को अपने आवेदन के एक विशिष्ट क्षेत्र में रखना चाहता हूं। कृपया मेरी मदद करें – Nubkadiya

उत्तर

5

आपके द्वारा प्रदान किए गए कोड का उपयोग करके, आपके पास JLabel में lblimage नामक छवि है। अब आप एक पैनल या किसी अन्य कंटेनर वस्तु है कि जोड़ सकते हैं ताकि तरह:

JPanel mainPanel = new JPanel(new BorderLayout()); 
mainPanel.add(lblimage); 
// add more components here 
frame.add(mainPanel); 
frame.setVisible(true); 

आप उस लेबल (lblimage) हैं, जैसे आप किसी भी सामान्य घटक इलाज कर सकते हैं।

+0

मैंने एक पैनल छोड़ने और इस कोड को समायोजित करने की कोशिश की। लेकिन काम नहीं कर रहा है। और मैं अपने जीयूआई में अधिक से अधिक आइटम (बटन और लेबल) जोड़ना चाहता हूं। क्या आप कृपया मेरी मदद कर सकते हैं – Nubkadiya

2

और मैं अपने जीयूआई में (बटन और लेबल) अधिक से अधिक आइटम जोड़ना चाहता हूं। आप कृपया मेरी मदद कर सकते हैं

आपके प्रश्न के लेबल और छवियों के साथ कुछ लेना देना नहीं है। फ्रेम को जोड़ने वाले घटकों को व्यवस्थित करने के लिए आपको लेआउट मैनेजर्स का उपयोग करने के तरीके को समझने की आवश्यकता है।

तो Layout Managers पर स्विंग ट्यूटोरियल पढ़कर शुरू करें। ऐसे कई उदाहरण हैं जिन्हें आप डाउनलोड और खेल सकते हैं। इसके अलावा आप विभिन्न पैनलों पर विभिन्न लेआउट प्रबंधकों को घोंसला कर सकते हैं।

2

आपका कोड पहले से ही है कि तुम क्या जरूरत है (यह अन्य में एक JFrame से प्रदर्शित करने के लिए - कि एक JLabel है -) करता

आप अपनी टिप्पणी में क्या कहते हैं के लिए, खींचने और छोड़ने और जोड़ने के लिए अधिक घटकों मुझे लगता है कि कोशिश करने के लिए क्या आप की जरूरत को प्राप्त करने के आप क्या चाहते हैं (जो केवल छवि दिखाई नहीं है, लेकिन अन्य घटकों को जोड़ने)

मैं तुम्हें यो उपयोग IntelliJ IDEA के GUI Builder

सिफारिश करेंगे ताकि एक रखने के लिए एक जीयूआई बिल्डर का उपयोग करने के लिए है स्विंग कैसे काम करता है और आप इसके साथ क्या कर सकते हैं पर पूरा अवलोकन, आप यह भी देख सकते हैं: The swing tutorial

3

मैं अन्य उपयोगी उत्तर देने के लिए दो नोट जोड़ना होगा:

1) अपवाद निगल मत करो; एक लॉग को लिखें या कम से कम एक स्टैक ट्रेस मुद्रित करें।

catch (IOException e) { e.printStackTrace(); } 

2) इसके बजाय frame.setSize(300, 400) लिखने की, pack() का उपयोग, जो "कारण इस Window वांछित माप और उसके उप-घटक के लेआउट फिट करने के लिए आकार किया जाना है।" इस तरह, तस्वीर के मूल आयामों का उपयोग किया जाएगा। यह लेआउट प्रबंधक के बारे में पढ़ने के लिए @ कैमिकर के सुझाव की नींव भी है।

4

इसके बजाय आप यह कर की कोशिश कर सकते:

import javax.swing.ImageIcon; 
... 
JLabel image = new JLabel(new ImageIcon("imageName.png")); 
... 
frame.add(image); 

मैं यह करने के बहुत आसान करने के लिए: डी

संपादित: 4 बार के लिए प्रश्न पढ़ने पर, मैंने महसूस किया कि इस ठीक है आपने सवाल में क्या किया। अब, मुझे यह पता लगाने में परेशानी हो रही है कि आप वास्तव में क्या पूछ रहे हैं।

+0

मेरी समस्या यह क्या है। मैंने पहले ही अपने लेबल में एक छवि जोड़ दी है। लेकिन यह प्रदर्शित नहीं है। लेबल ड्रैग और ड्रॉप से ​​है। तो मैं चाहता हूं कि जब मेरा एप्लिकेशन लेबल चलाता है तो छवि को प्रदर्शित करना चाहिए। और दूसरी बात यह है कि इसे पूरे जीयूआई नहीं लेना चाहिए। jframe का उपयोग करके यह क्या करता है यह पूरे फ्रेम को लेता है, इसलिए मैं कोई अन्य बटन या लेबल भी जोड़ नहीं सकता – Nubkadiya

+0

आपका क्या मतलब है कि इसे पूरा जीयूआई नहीं लेना चाहिए? और खींचें और छोड़कर, क्या आपका मतलब है कि आप जीयूआई बनाने के लिए एक और प्रोग्राम का उपयोग कर रहे हैं? यदि छवि प्रदर्शित नहीं हो रही है, तो आपको शायद जो करना होगा वह जेएलएबल को छवि को जेपीनल में रखे और फिर जेपीनेल को अपडेटयूआई() निष्पादित करने के लिए बताएं; (मुझे लगता है। मुझे अभी भी यकीन नहीं है कि आपकी समस्या क्या है।) – exodrifter

+0

मेरे पास और बटन और लेबल हैं। वे सभी कोड द्वारा नहीं बनाए गए हैं। मैंने उन्हें खींच लिया है और उन्हें फॉर्म में छोड़ दिया है। – Nubkadiya

2

इस प्रयास करें:

JLabel lblNewLabel_1 = new JLabel(""); 
lblNewLabel_1.setIcon(new ImageIcon(MainMenu.class.getResource("/Images/Bugs.png"))); 
संबंधित मुद्दे