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 |