2012-10-22 17 views
5

Tôi đang cố gắng thêm hình ảnh vào một khung nhưng có vẻ như nó không hoạt động. Hình ảnh được tạo bởi ImageIcon từ tệp được chỉ định. Tệp hình ảnh nằm trong thư mục đường nối tệp java tồn tại.Cách thêm ImageIcon vào JFrame?

import java.awt.BorderLayout; 

import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 

    public class image { 

     public static void main(String args[]) 
     { 
      TimeFrame frame = new TimeFrame(); 
     } 
    } 

    class TimeFrame extends JFrame 
    { 
     //Image icon = Toolkit.getDefaultToolkit().getImage("me.jpg"); 
     ImageIcon icon = new ImageIcon("me.jpg"); 
     JLabel label = new JLabel(icon); 
     public TimeFrame(){ 
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      setTitle("My Frame"); 
      setSize(500,400); 
      //this.setIconImage(icon); 
      add(label,BorderLayout.CENTER); 
      setVisible(true); 
     } 


    } 
+0

hãy có một cái nhìn tại Làm thế nào để [Thêm hình ảnh vào dự án của bạn] (http://stackoverflow.com/a/9866659/1057230) và [answer] này (http://stackoverflow.com/a/11372350/1057230) để làm rõ hơn, nếu bạn làm nó bằng tay (không có IDE). –

Trả lời

5

Nếu biểu tượng của bạn là bên cạnh các tập tin TimeFrame java, bạn nên sử dụng

java.net.URL imgUrl = getClass().getResource("me.jpg"); 
ImageIcon icon = new ImageIcon(imgUrl); 

hoặc

java.net.URL imgUrl = TimeFrame.class.getResource("me.jpg"); 
ImageIcon icon = new ImageIcon(imgUrl); 

Bạn đang (có lẽ) hiện tìm kiếm nó ở thư mục làm việc của bạn mà bạn có thể xuất qua

System.out.println(System.getProperty("user.dir")); 
+0

Như tài liệu nói getResource (...) Tìm một tài nguyên với một tên đã cho. Phương thức này trả về null nếu không tìm thấy tài nguyên nào với tên này ... nhưng tôi vẫn không chắc tại sao nó không hoạt động trước đây ... Tôi đã sử dụng nó và nó hoạt động tốt: Image image = ImageIO.read (new File (" SydneyOperaHouse.jpg ")); – Bernard

4

Bạn có thử cái này không?

ImageIcon ImageIcon = new ImageIcon("me.jpg"); 
    Image Image = ImageIcon.getImage(); 
    this.setIconImage(Image); 
+0

Oct 23 00:24:38 MacBook-Pro.local java [592] : CGContextGetCTM: ngữ cảnh không hợp lệ 0x0 23 tháng 10 00:24:38 MacBook-Pro.local java [592] : CGContextSetBaseCTM: ngữ cảnh không hợp lệ 0x0 tháng 10 23 00:24:38 MacBook-Pro.local java [592] : CGContextGetCTM: ngữ cảnh không hợp lệ 0x0 23 tháng 10 00:24:38 MacBook-Pro.local java [592] : CGContextSetBaseCTM: ngữ cảnh không hợp lệ 0x0 – Bernard

+0

đây là lỗi tôi đang nhận ngay bây giờ! – Bernard

1

Đơn giản chỉ cần thay đổi thư mục "src/me.jpg"