2010-05-31 88 views
10

Tôi muốn hiển thị một hình ảnh trong ứng dụng Java của mình. Tôi tìm thấy một mã để tải xuống hình ảnh từ máy chủ web và hiển thị nó trong khung hình.Cách hiển thị hình ảnh trong ứng dụng Java

Tôi muốn sử dụng nhãn để hiển thị hình ảnh hoặc hình ảnh khác. Nó không nên là JFrame.

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

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

Ai đó có thể giúp tôi?

+1

Liệu việc mã của bạn hay không? Bạn đã thử nó chưa? Nếu nó không hoạt động, thì có gì sai - bạn có nhận được thông báo lỗi hay không giống như bạn mong đợi? Bạn cung cấp càng nhiều chi tiết, những người tốt hơn có thể giúp bạn. – Jesper

+0

Mã thực hiện chính xác những gì bạn mô tả. Hình ảnh được hiển thị trong nhãn lblimage. Bạn có thể đặt nhãn trong một JPane và nó sẽ hoạt động. Bạn nghĩ gì không hoạt động? – openCage

+0

không có tiền phạt. nhưng nó hiển thị trong khung. nhưng tôi muốn hình ảnh này hiển thị trong một nhãn hoặc một cái gì đó. vì vậy tôi có thể điều chỉnh kích thước và tất cả. tôi muốn đặt hình ảnh này trong một khu vực cụ thể của ứng dụng của tôi. hãy giúp tôi – Nubkadiya

Trả lời

5

Sử dụng mã bạn đã cung cấp, bạn đã có hình ảnh trong một số JLabel được gọi là lblimage. Bây giờ bạn có thể thêm rằng đến một bảng điều khiển hoặc bất kỳ đối tượng chứa khác, như vậy:

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

Bạn có thể điều trị mà nhãn (lblimage) giống như bạn làm bất kỳ thành phần bình thường.

+0

tôi đã thử kéo thả một bảng điều khiển và làm cho mã này điều chỉnh theo đó. nhưng không hoạt động. và tôi muốn thêm nhiều mục và nhiều hơn nữa (các nút và nhãn) vào GUI của tôi. bạn có thể giúp tôi – Nubkadiya

2

và tôi muốn thêm ngày càng nhiều mặt hàng (nút và nhãn) vào GUI của mình. có thể bạn vui lòng giúp tôi

Câu hỏi của bạn không liên quan gì đến nhãn và hình ảnh. Bạn cần hiểu cách sử dụng Trình quản lý bố cục để tổ chức các thành phần bạn thêm vào khung.

Vì vậy, hãy bắt đầu bằng cách đọc hướng dẫn Đu trên Layout Managers. Có rất nhiều ví dụ bạn có thể tải xuống và chơi cùng. Ngoài ra, bạn có thể lồng các trình quản lý bố cục khác nhau trên các bảng khác nhau.

2

Mã của bạn đã làm những gì bạn cần (để hiển thị nó trong khác hơn là một JFrame - đó là một JLabel -)

Đối với những gì bạn nói trong bình luận của bạn, để cố gắng kéo, thả và bổ sung thêm các thành phần tôi nghĩ những gì bạn cần là sử dụng một người thợ xây GUI để đạt được những gì bạn muốn (mà không chỉ hiển thị các hình ảnh nhưng thêm các thành phần khác)

tôi sẽ khuyên bạn yo sử dụng IntelliJ IDEA 's GUI Builder

để có một tổng quan về cách Swing hoạt động và bạn có thể làm gì với nó, bạn cũng có thể xem: The swing tutorial

3

Tôi sẽ thêm hai ghi chú vào các câu trả lời hữu ích khác:

1) Không nuốt ngoại lệ; ghi vào nhật ký hoặc ít nhất in dấu vết ngăn xếp.

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

2) Thay vì viết frame.setSize(300, 400), sử dụng pack(), mà "Nguyên nhân Window này để được kích thước để phù hợp với kích thước ưa thích và bố trí các thành phần phụ của nó." Bằng cách này, kích thước ban đầu của hình ảnh sẽ được sử dụng. Đây cũng là nền tảng gợi ý của @ camickr để đọc về Trình quản lý bố cục.

4

Bạn có thể thử làm điều này thay vì:

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

tôi tìm thấy nó dễ dàng hơn nhiều việc phải làm: D

EDIT: Sau khi đọc các câu hỏi lần thứ 4, tôi nhận ra rằng đây là chính xác những gì bạn đã làm trong câu hỏi. Bây giờ, tôi đang gặp khó khăn trong việc tìm ra chính xác những gì bạn đang yêu cầu.

+0

vấn đề của tôi là gì không? tôi đã thêm hình ảnh vào nhãn của mình. nhưng nó không hiển thị. nhãn là từ kéo và thả. vì vậy tôi muốn khi ứng dụng của tôi chạy nhãn sẽ hiển thị hình ảnh. và một điều khác là không nên dùng toàn bộ GUI. bằng cách sử dụng jframe những gì nó làm là phải mất toàn bộ khung hình vì vậy tôi thậm chí không thể thêm bất kỳ nút hoặc nhãn khác – Nubkadiya

+0

Điều gì làm bạn có nghĩa là nó không nên dùng toàn bộ GUI? Và bằng cách kéo và thả, bạn có nghĩa là bạn đang sử dụng một chương trình khác để tạo GUI? Nếu hình ảnh không hiển thị, những gì bạn có thể phải làm là đặt JLabel chứa hình ảnh vào JPanel và sau đó yêu cầu JPanel thực thi updateUI(); (Tôi nghĩ. Tôi vẫn không chắc vấn đề của bạn là gì.) – exodrifter

+0

tôi có nhiều nút và nhãn hơn. tất cả chúng không được tạo ra bởi mã. tôi đã kéo và thả chúng vào biểu mẫu. – Nubkadiya

2

Hãy thử điều này:

JLabel lblNewLabel_1 = new JLabel(""); 
lblNewLabel_1.setIcon(new ImageIcon(MainMenu.class.getResource("/Images/Bugs.png"))); 
Các vấn đề liên quan