- [Java] 60. Swing: 이미지 출력하기2024년 04월 29일
- Song hyun
- 작성자
- 2024.04.29.:26
728x90반응형[Java] 60. Swing: 이미지 출력하기
아래와 같이 Java Swing에서 이미지를 출력해보자.
(1) MyImageFrame()
생성자에 작성한 메서드들을 집어넣는다. 객체 생성 시, 해당 사용자 정의 생성자에서 선언된 메서드들이 실행된다.
(2) initData()
setTitle: 창에 제목(타이틀)을 삽입한다.
setSize: 창의 크기를 설정한다.
setDefaultCloseOperation: 자바에서 사용자가 x버튼을 눌렀을 때의 처리를 결정하는 메서드이다.
EXIT_ON_CLOSE= 어플리케이션의 종료를 의미한다.
myImagePanel: 내부 클래스로 정의한 데이터 타입이다. (=컴포지션, 포함관계.)
(3) 내부 클래스 MyImagePanel
*JPanel의 기능을 사용하기 위해, JPanel을 상속받는다.
MyImagePanel 사용자 생성자: 해당 객체 생성시, "image1.png"를 삽입한다.
(4) paint(오버라이드 메서드)
-부모 클래스/상위 클래스인 JPanel의 paint를 재정의한다.
-해당 좌표의 위치에 "image1.png"를 그린다.package ch03; public class MyImageFrameMainTest { public static void main(String[] args) { MyImageFrame m=new MyImageFrame(); } }
package ch03; import java.awt.Graphics; import java.awt.Image; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JPanel; /** * 중첩 클래스 --> 외부, 내부 클래스 * 내부 클래스 --> 인스턴스 클래스, static 클래스 * */ public class MyImageFrame extends JFrame { // 내부 클래스로 정의한 데이터 타입이다. private MyImagePanel myImagePanel; public MyImageFrame() { initData(); setInitLayout(); } private void initData() { setTitle("이미지 활용 연습"); setSize(600,600); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); myImagePanel=new MyImagePanel(); } private void setInitLayout() { add(myImagePanel); setVisible(true); } // 내부 클래스 --> static 키워드 활용 // 정적(static) 내부 클래스 static class MyImagePanel extends JPanel{ private Image image; public MyImagePanel() { // ImageIcon 데이터 타입 안에, getImage() 메서드를 호출하면, // Image라는 데이터 타입을 만들어 낼 수 있다. image= new ImageIcon("image1.png").getImage(); } // paints --> x // paint --> o @Override public void paint(Graphics g) { super.paint(g); g.drawImage(image, 100, 100, 100, 100, null); } } }
728x90반응형'Java > 자바 Swing' 카테고리의 다른 글
[Java] 62. Swing: 이벤트 리스너 (0) 2024.04.29 [Java] 61. Swing: 이미지 겹치기 (0) 2024.04.29 [Java] 59. 사용자 정의 예외 클래스 (0) 2024.04.29 [Java] 56. Swing 응용 예제: 집 그리기 (0) 2024.04.26 [Java] 55. Swing: 패널과 컨테이너 (0) 2024.04.26 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)