2
BufferedImage
을 사용하여 JPanel
또는 JLabel
으로 이미지를 표시하는 방법은 무엇입니까? FileChooser
을 사용하여 이미지를로드하고 내가로드 한 것을 표시해야합니다. 클래스를 다른 컨테이너로 확장하지 않습니다.이미지를 구성 요소에 표시하는 방법은 무엇입니까?
BufferedImage
을 사용하여 JPanel
또는 JLabel
으로 이미지를 표시하는 방법은 무엇입니까? FileChooser
을 사용하여 이미지를로드하고 내가로드 한 것을 표시해야합니다. 클래스를 다른 컨테이너로 확장하지 않습니다.이미지를 구성 요소에 표시하는 방법은 무엇입니까?
JPanel 또는 JLabel의 paintComponents (g)paintComponent(g)
메서드를 오버라이드하여 그 안에 이미지를 그립니다. 따르는 것 :
JPanel panel = new JPanel(){
@Override
public void paintComponent(Graphics g) {
BufferedImage image = null; // get your buffered image.
Graphics2D graphics2d = (Graphics2D) g;
graphics2d.drawImage(image, 0, 0, null);
super.paintComponents(g);
}
};
JLabel과 동일합니다. 또는 다른 방법 :
BufferedImage image = null; // get your buffered image.
ImageIcon icon = new ImageIcon((Image)image);
JLabel label = new JLabel();
label.setIcon(icon);
당신이 FileChooser
에서 이미지를로드가 방법 다음으로 수행 할 수 있다는 말과 같이
ImageIcon icon = new ImageIcon(
fileChooser.getCurrentDirectory().toString()
+"/"+fileChooser.getSelectedFile().getName());
지금 당신이 JLabel의에서 이미지 아이콘을 사용하거나에 추가 할 수 있습니다 JPanel.
위 코드는 예제 코드이며, 테스트하지 않았으므로 아무런 오류없이 실행하지 않아도됩니다. 필요에 따라 변경해야 할 수도 있습니다.
JLabe에 정확합니다! –
@Harry Joy, 당신은'paintComponent'를 의미 했습니까? – mre
@mre : 아니요. 'paintComponents'를 의미합니다. 나는'paintComponent'가 같은 효과를 줄지 확신하지 못합니다. –