2012-06-28 4 views
8

Я пытаюсь создать очень простую игру с Java, и у меня возникли проблемы с отображением изображения на JFrame. Он работал в прошлом для меня, а теперь нет, я не вижу, что я сделал не так.Java добавление ImageIcon в JLabel

Я пробовал печатать текущую рабочую директорию и изменять, где я получаю свое изображение, чтобы соответствовать этому. Вероятно, проблема не в том, чтобы получить изображение, так как мой (filefinder или filerader или что-то в этом роде) может найти его без проблем, но я не могу его правильно добавить (ImageIcon) в JLabel или на JFrame.

Это мой код ...

JFrame frame = new JFrame("no image"); 
ImageIcon image = new ImageIcon("C:/Documents and Settings/user/Desktop/hi/xD/JavaApplication2/image.png"); 
JLabel imagelabel = new JLabel(image); 
frame.add(imagelabel); 

The JFrame был setVisible(true) и pack().

Может кто-то, пожалуйста, помогите мне понять, что не так.

+0

Пожалуйста, посмотрите на этот пример, [Как добавить изображения к вашему проекту] (http://stackoverflow.com/questions/9864267/load-icon-image-exception/9866659#9866659) или выполните следующие действия [шаги] (http: // ga gandeepbali.uk.to/gaganisonline/webpages/makejareclipse.html) –

+0

Я посмотрел на эти примеры, они не помогли – user1486826

+0

Просто разместите свое изображение рядом с вашим .class-файлом и используйте его, как этот ImageIcon image = new ImageIcon (getClass () .getResource ("yourImage.extension")) ;. Эта ссылка должна работать, поскольку это правильный способ разместить ваши изображения в вашем проекте. Надеюсь, вы прошли все шаги, упомянутые в этом! –

ответ

12

Ваша проблема заключается здесь:

ImageIcon image = new ImageIcon("C:/Documents and Settings/user/Desktop/hi/xD/JavaApplication2/image.png"); 
    JLabel imagelabel = new JLabel(character); 

Вы создаете ImageIcon "образ", но вы создаете JLabel с "характером".

Оно должно быть:

JLabel imagelabel = new JLabel(image); 
+0

Извините, в моем фактическом коде они такие же, я забыл заменить символ изображением. – user1486826

3

Попробуйте,

ImageIcon image = new ImageIcon("c:\\path\\image.png"); 
imagelabel = new JLabel(character, image, JLabel.CENTER); 
frame.add(imagelabel); 

Посмотрите на учебник - How to use Icons

+0

Я много раз изучал учебник, я не вижу, что я сделал не так. – user1486826

-1
import javax.awt.*; 
import java.awt.*; 
import java.awt.event*; 

//class name image 
class image { 
    image() 
    //constructor { 
     Frame f=new Frame("Image"); 
     //Frame 
     f.setSize(500,500); 
     f.setVisible(true); 
     Panel p =new Panel(); 
     //Panel 
     f.add(p); 
     p.addLayout(null); 
     ImageIcon ii=new ImageIcon("set your image path"); 
     //ImageIcon is used to image Display . 
     Label l =new Label(ii); 
     p.add(ii); 
     p.setBounds(set you bounds); 
     //Like that(20,20,500,40); 
    } 

    public static void main(String [] args) { 
     image obj = new 
    } 
} 
+2

Пожалуйста, добавьте несколько пояснений о своем коде и о том, почему OP нуждается в вашем коде;). –

Смежные вопросы