JFrame

2013-07-23 6 views
9

में जावा आइकन कैसे बदलें ठीक है, इसलिए मैं इस शांत को थोड़ा सा शोध कर रहा हूं। मैं जावा के लिए बिल्कुल नया हूं लेकिन सोचा कि यह आसान होगा। मैंने इस साइट पर उत्तर देने के हर तरीके की कोशिश की और अभी भी कोई भाग्य नहीं है, और आमतौर पर जब मैं यहां देखता हूं तो मुझे वह जवाब मिल जाता है जो मैं ढूंढ रहा हूं। क्या कोई जानता है कि जेफ्रेम के शीर्ष कोने में जावा आइकन कैसे बदलें। मैं बहुत सकारात्मक हूं कि यह मेरा फ़ाइल पथ नहीं है क्योंकि मेरी सभी छवियां एक ही फ़ोल्डर में हैं और वे सभी काम करते हैं, यह एकमात्र ऐसा है जिसे मैं काम नहीं कर सकता।JFrame

यह मेरे कार्यक्रम के मुख्य मेनू के लिए मेरा पहला भाग है, सबकुछ काम करता है जब मैं आइकन छवि जोड़ने की कोशिश करता हूं। नीचे दिए गए कोड में JFrame IconImage के लिए इसमें कुछ भी नहीं है, मैंने इसे हटा दिया क्योंकि यह काम नहीं करता है। तो अगर कोई ऐसा व्यक्ति है जो जानता है कि इसे इस कोड के साथ कैसे काम करना है, जिसकी अत्यधिक सराहना की जाएगी, उन्नत में बहुत बहुत धन्यवाद!

public class MainFrame 
{ 
private MyPanel main; 
private MyPanel2 create; 
private MyPanel3 update; 
private MyPanel4 find; 
JFrame frame = new JFrame("Main Menu:"); 

public void displayGUI() 
{ 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    JPanel contentPane = new JPanel(); 
    contentPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); 
    contentPane.setLayout(new CardLayout()); 
    main = new MyPanel(contentPane, this); 
    create = new MyPanel2(contentPane); 
    update = new MyPanel3(contentPane); 
    find = new MyPanel4(contentPane); 
    contentPane.add(main, "Main Menu"); 
    contentPane.add(create, "Create Part"); 
    contentPane.add(update, "Update Part"); 
    contentPane.add(find, "Find Part"); 
    frame.setLocation(200, 200); 
    frame.setSize(700, 580); 
    frame.setContentPane(contentPane); 

    frame.setVisible(true); 

} 
+0

पोस्ट ** प्रासंगिक ** कोड केवल। हम उस भाग के लिए कोड की अपनी दीवार से खोज नहीं करना चाहते हैं जहां फ्रेम का आइकन बदल दिया गया है। फिर हमें बताएं कि आप कोड के इस प्रासंगिक भाग को क्या उम्मीद करते हैं, और इसके बजाय यह क्या करता है। –

+0

यह कोड का हिस्सा है कि परिवर्तन आइकन भाग होना चाहिए। मैंने कोड दर्ज करने के कई अलग-अलग तरीकों की कोशिश की है, लेकिन जेएफआरएएम के लिए कोड उसमें परिवर्तन आइकन कोड के बिना है। –

+0

अपना सर्वश्रेष्ठ प्रयास दिखाएं, और हमें बताएं कि क्या होता है। संकेत: http://docs.oracle.com/javase/6/docs/api/javax/swing/JFrame.html#setIconImage%28java.awt.Image%29, http://docs.oracle.com/javase/ 6/डॉक्स/एपीआई/जावैक्स/स्विंग/इमेज Icon.html # getImage% 28% 29, http://docs.oracle.com/javase/tutorial/uiswing/components/frame.html –

उत्तर

14

मैं तुम्हारे लिए एक जवाब है। सबसे पहले, सुनिश्चित करें कि छवियां फ़ोल्डर में हैं, पैकेज नहीं। इसके बाद, कोड की इस पंक्ति सम्मिलित करें:

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("path/to/image.png")); 
ImageIcon icon = new ImageIcon(); 
setIconImage(icon.getImage()); 

इस कोड वर्ग पथ से छवि हो जाता है, और एक छवि आइकन के रूप में यह देता है, और फिर इसे यह तय करता है। इसे एप्लिकेशन में छवि आइकन जोड़ना चाहिए। अगर ऐसा नहीं होता है, तो मुझे बताओ।

संपादित करें: आपने मुझे बताया कि यह काम नहीं करने के बाद मैंने उस पर दूसरी दरार लेने का फैसला किया ... सबसे पहले, अपनी छवियों को पूरी तरह से अलग फ़ोल्डर में रखें। मैं आमतौर पर यह/res कहते हैं। इसके बाद, अपनी छवि वहां पर रखें। अब, लोड करने के लिए मैंने एक पूरी तरह से अलग रास्ता लिया। मैंने डिफ़ॉल्ट लोडिंग के बजाय ImageIO का उपयोग करने का निर्णय लिया। छवि को लोड करने के लिए, आप इस कोड का उपयोग करें:

try { 
    frame.setIconImage(ImageIO.read(new File("res/icon.png"))); 
} 
catch (IOException exc) { 
    exc.printStackTrace(); 
} 

ImageIO एक बहुत लोड हो रहा है छवियों के लिए बेहतर काम करता है। यदि यह अभी भी काम नहीं करता है तो कृपया मुझे बताएं।

यदि आप इसे एक जार के रूप में निर्यात करना चाहते हैं तो एक फ़ोल्डर को वही नाम दें जैसा आपने प्रोग्राम में जेएआर के समान निर्देशिका में किया था।

+0

में कुछ भी टाइप नहीं किया है, यह मेरे लिए काम नहीं करता है, मैंने यह भी सुनिश्चित किया है कि यह एक फ़ोल्डर में था और पैकेज नहीं –

+0

मुझे इसे कोड में क्यों रखा जाना चाहिए मैंने इसे फ्रेम.सेटडिफॉल्टक्लोऑपरेशन (जेएफआरएएम .EXIT_ON_CLOSE); –

+0

मेरे पास फ्रेम के ठीक सामने कोड की रेखा थी .setDefaultCloseOperation। इस तरह, हम जानते हैं कि आइकन कुछ भी होने से पहले सेट किया गया है –

2

उदाहरण के लिए नेटबीन प्रोजेक्ट में, src फ़ोल्डर में संसाधन फ़ोल्डर बनाएं।

वहां अपनी छवियां (jpg, ...) रखें।

आप का उपयोग करें ImageIO या Toolkit (getResource सहित), आप एक प्रमुख/छवि फ़ाइल करने के लिए अपने रास्ते में शामिल करना चाहिए: इस कोड को अपने JFrame वर्ग के अंदर है

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/resources/agfa_icon.jpg")); 
setIconImage(image); 

, तो छवि जोड़ा जाता है फ्रेम को आपके शीर्षक पट्टी में एक आइकन के रूप में।

2

यह मेरे लिए बहुत अच्छा काम करता है। अपने जेएफआरएएम बनाने के बाद बस इसे जोड़ें।

try { 
    Image image = new ImageIcon("/icons/image.jpg").getImage(); 
    frame.setIconImage(image); 
}catch(Exception e){ 
    System.out.println("Application icon not found"); 
} 
+1

कृपया, केवल-कोड के उत्तर से बचें। आपको हमेशा प्रश्न, संभावित समाधान और उदाहरण कोड (इस) में समस्या के कारण के बारे में कुछ स्पष्टीकरण देना चाहिए। लोगों की मदद करने के लिए कुछ समय बिताएं। –

0
  1. अपनी छवि आइकन (fav पेस्ट करें।png) एक ही पैकेज में पहली बार, JFrame की निर्माता में निम्न कोड
  2. लिखें:।

setIconImage (Toolkit.getDefaultToolkit() getImage (getClass() getResource ("fav।। png ")));

नोट: - fav.png आइकन का नाम है

0
this.setIconImage(new ImageIcon(getClass().getResource("/iconsfolder/iconsname.jpg")).getImage()); 
      // sets the Global icon for the system 

इस कोड को इस कोड के बाद डाल प्रयास करें:

public void displayGUI() 
{ 
संबंधित मुद्दे