본문 바로가기
Java

[Java Swing] paint 메서드 : 도형, 이미지, 문자열 그리기

by 스응 2023. 2. 14.
728x90
728x90

JPanel 클래스의 paint 메서드

  - JPanel 클래스를 상속받아, paint 메서드를 재정의해서 그림을 그릴 수 있음

 

#  도형 그리기

// JFrame을 상속받은 클래스의 외부 or 내부에 선언해서 사용
class 클래스명 extends JPanel {

    // paint 메서드를 재정의해서 사용함
    @Override
    public void paint(Graphics g) {
        super.paint(g);
        
        // fillRect : 채운 사각형
        // 사각형 그리기
        g.drawRect(x좌표, y좌표, 너비, 높이);
        
        // 둥근 사각형 그리기
        g.drawRoundRect(매개변수);
        
        // 문자열 넣기
        g.drawString("문자열", x좌표, y좌표);
        
        // 선 그리기       
        g.drawLine(x좌표1, y좌표1, x좌표2, y좌표2);
        
        // 원 그리기
        g.drawOval(x좌표, y좌표, 너비, 높이);
        
        // 곡선 그리기
        g.drawArc(x좌표, y좌표, 너비, 높이, 시작점각도, 그릴각도); 
        // 시작점 각도는 →가 0도
    }
}

// 해당 클래스를 멤버변수로 선언해 인스턴스화한 후,
// add 메서드로 추가하면 그림이 그려짐

 

  - 예제 : https://young0105.tistory.com/69

 

#  이미지 삽입하기

// JFrame을 상속받은 클래스의 외부 or 내부에 선언해서 사용
class 클래스명 extends JPanel {

    // 이미지 변수 선언
    private Image 이미지명;

    // 생성자
    public 클래스명() {
        // 이미지 가져오기 (같은 폴더여야 경로 설정 없이 가져올 수 있음)
        이미지명 = new ImageIcon("경로/파일명.확장자").getImage();
    }

    // paint 메서드를 재정의해서 사용함
    @Override
    public void paint(Graphics g) {
        super.paint(g);
        // 이미지 삽입
        g.drawImage(이미지명, x좌표, y좌표, 너비, 높이, null);
    }
}

// 해당 클래스를 멤버변수로 선언해 인스턴스화한 후,
// add 메서드로 추가하면 그림이 그려짐

 

  - 예제 : https://young0105.tistory.com/79

 

#  다시 그리기

// 새로고침과 같은 역할 (paint 메서드를 다시 호출함)
repaint();

 

320x100
반응형

'Java' 카테고리의 다른 글

[Java Swing] JLabel 클래스 : 이미지 관련  (0) 2023.02.16
[Java] 오류와 예외 처리  (0) 2023.02.15
[Java Swing] 패널 (Panel)  (0) 2023.02.14
[Java Swing] 컴포넌트 (Component)  (0) 2023.02.14
[Java Swing] 배치 관리자 (Layout)  (0) 2023.02.14

댓글