2012-06-28 60 views
8

Tôi đang cố tạo một trò chơi rất cơ bản với Java và tôi gặp sự cố khi hiển thị hình ảnh trên JFrame. Nó đã làm việc trong quá khứ cho tôi và bây giờ không phải là, tôi không thể nhìn thấy những gì tôi đã làm sai.Java thêm ImageIcon vào JLabel

Tôi đã thử in thư mục làm việc hiện tại và thay đổi nơi tôi nhận được hình ảnh của mình để khớp với nó. Có khả năng là vấn đề không nhận được hình ảnh, vì tôi có thể tìm thấy hình ảnh mà không có vấn đề gì, nhưng tôi không thể thêm nó một cách chính xác (ImageIcon) vào JLabel hoặc cho số JFrame.

Đây là mã của tôi ...

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); 

Các JFrame đã setVisible(true)pack().

Ai đó có thể giúp tôi hiểu điều gì sai.

+0

Hãy có một cái nhìn vào ví dụ này, [Làm thế nào để thêm hình ảnh cho Dự án của bạn] (http://stackoverflow.com/questions/9864267/load-icon-image-exception/9866659#9866659) hoặc Vui lòng thực hiện theo [các bước sau] (http: // ga gandeepbali.uk.to/gaganisonline/webpages/makejareclipse.html) –

+0

Tôi đã xem các ví dụ đó, chúng không giúp đỡ – user1486826

+0

Đơn giản chỉ cần đặt hình ảnh của bạn bên cạnh tệp .class của bạn và sử dụng nó như thế này ImageIcon image = new ImageIcon (getClass () .getResource ("yourImage.extension")) ;. Liên kết đó phải hoạt động, vì đó là cách phù hợp để đưa hình ảnh của bạn vào dự án của bạn. Tôi hy vọng bạn đã đi qua tất cả các bước được đề cập trong đó !! –

Trả lời

12

Vấn đề của bạn nằm ở đây:

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

Bạn tạo một IMAGEtrong "hình ảnh", nhưng bạn tạo JLabel của bạn với "nhân vật".

Nó nên là:

JLabel imagelabel = new JLabel(image); 
+0

xin lỗi, trong mã thực tế của tôi họ là như nhau, tôi quên thay thế nhân vật bằng hình ảnh. – user1486826

3

Hãy thử,

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

Hãy xem Hướng dẫn - How to use Icons

+0

Tôi đã xem hướng dẫn nhiều lần, tôi không thấy những gì tôi đã làm sai. – 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

Vui lòng thêm một số giải thích về mã của bạn và về lý do tại sao OP cần mã của bạn;). –