2013-05-13 5 views

답변

11

당신이 사용할 수있는 BufferedImage :

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); 
Graphics2D graphics2D = image.createGraphics(); 
+0

나는 대답을 좋아합니다 - 어떻게 이미지를 표시 할 수 있습니까? – necromancer

+2

JLabel에 의해 표시되는 ImageIcon입니다. 1 + –

+0

답변을 받아 들일 수있는 어려운 선택, 나는 매우 간단하고 울트라 - 이식성이 하나를 선택했습니다. 그것은 서버 측뿐만 아니라 데스크탑에서도 작동합니다. 이 접근법의 유일한 단점은 디버깅에 사용할 수있는 마우스 이벤트를 잡을 수 없기 때문에 데스크톱에 이상적이지 않다는 것입니다. 하지만 그건 내가 요구 한 것이 아닙니다. 훌륭한 답변에 감사드립니다! – necromancer

5

가장 쉽고 안전한 방법은 Graphics 참조를 paintComponent에 캐스팅하고 필요에 따라 캐스팅하는 것입니다. 그러면 Object이 올바르게 초기화됩니다. 이 참조는 필요에 따라 다른 사용자 정의 페인팅 메소드에 전달 될 수 있습니다.

@Override 
public void paintComponent(Graphics g) { 
    super.paintComponent(g); 
    Graphics2D g2d = (Graphics2D)g; 
    ... 
} 
+0

아래 @ greedybuddha의 유사한 조금 더 완벽한 솔루션을 시도했지만 내 프로그램을 만든 후 즉시 종료됩니다. – necromancer

+0

@randomstring : 그러면 뭔가 잘못하고있는 것입니다. 뭐? - 코드를 보여주지 않아서 전혀 모릅니다. 1 + –

+0

감사합니다. JFrame에 추가해야했습니다. 나는 내 질문에 얼마나 더 초보자인지 명확히해야한다 :) – necromancer

3

그냥 JPanel을 만들고 페인트해야합니다.

public class MyPanel extends JPanel { 
    @Override 
    public void paintComponent(Graphics g) { 
     super.paintComponent(g); 
     Graphics2D g2d = (Graphics2D) g; 
     .... // my painting 
    } 
} 
+0

내 프로그램은 jpanel을 만든 후 종료됩니다. – necromancer

+0

@randomstring : JFrame에 넣고 JFrame을 표시하고 있습니까? 스윙 튜토리얼을 전혀 읽지 않았습니까? –

+0

nope, 초보자 용. 하지만 JFrame에 추가하기 위해 알아 냈습니다. 감사! – necromancer

관련 문제