2011-10-10 2 views
2

JPanel (netbeans를 사용하여 만들었습니다)이 있고 이전 페이지에서 선택한 이미지를 기반으로 이미지를로드해야합니다. 아무도 그 방법을 제안 할 수 있습니까? 또한 JPanel은 내가하려고하는 일을하는 가장 좋은 방법입니까, 아니면 다른 것을 할 수 있습니까?JPanel에서 이미지로드

감사의 말씀 감사합니다 !!

+0

모든 stackoverflow 페이지의 오른쪽 상단에는 '** 검색 **'이라는 회색 프롬프트가있는 텍스트 상자가 있습니다. 즉,이 상자를 클릭하고 단어 (예 : 'image jpanel')를 입력하고 리턴 키를 누르십시오. 웹 페이지가 _magically_ 다시로드하고 이러한 단어가 포함 된 질문 목록 (및 답변!)을 보여줍니다. 나는 당신을 위해 이것을 돌보고 두 번째 히트를 선물하게되어 자랑 스럽습니다 : http://stackoverflow.com/questions/1242581/display-a-jpg-image-on-a-jpanan--) – bobndrew

답변

3

이미지를 표시하는 가장 쉬운 방법은 JLabel을 사용하고 setIcon 메서드 (또는 해당 생성자)를 호출하는 것입니다. 아이콘은 ImageIcon 클래스의 생성자 중 하나를 사용하여로드 할 수 있습니다.

예를 들어 http://download.oracle.com/javase/tutorial/uiswing/components/label.html을 참조하십시오.

+0

+1 고마워! – koool

3

read/load 개의 이미지가 Java로 표시됩니다. this 자습서를 살펴보십시오.

+0

안녕! 그것 주셔서 감사합니다 ...하지만 JPanel 사용하고 이미 Netbeans 끌어서 놓기 사용하여 내 패널을 초기화했습니다 ... 지금은 이미지로드하는 방법을 알아낼 필요가 ... 비록 +1 +2 – koool

3

이것은 이미지를 JPanel에로드하는 방법을 보여주는 샘플 코드입니다. background.jpgJPanel에로드하는 이미지입니다. 또한이 이미지는 소스에서 사용할 수 있어야합니다.

import java.awt.Dimension; 
import java.awt.Graphics; 
import java.awt.Image; 
import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class ImageTest { 

    public static void main(String[] args) { 
     ImagePanel panel = new ImagePanel(
      new ImageIcon("background.jpg").getImage()); 

     JFrame frame = new JFrame(); 
     frame.getContentPane().add(panel); 
     frame.pack(); 
     frame.setVisible(true); 
    } 
} 

class ImagePanel extends JPanel { 

    private Image img; 

    public ImagePanel(String img) { 
     this(new ImageIcon(img).getImage()); 
    } 

    public ImagePanel(Image img) { 
     this.img = img; 
     Dimension size = new Dimension(img.getWidth(null), img.getHeight(null)); 
     setPreferredSize(size); 
     setMinimumSize(size); 
     setMaximumSize(size); 
     setSize(size); 
     setLayout(null); 
    } 

    public void paintComponent(Graphics g) { 
     g.drawImage(img, 0, 0, null); 
    } 
} 
+0

+1 감사합니다 !!!!!!! – koool