Sharon kim 2021. 11. 9. 11:08
SwingEx 복습 순서 메모
ch01>
ColorChangeFrame
EventListenerEx1
EventListenerEx2
SuperMyFrame
ch02>
Maintest1
MyFrame4
MyFrame5
MyFrame6
MyFrame7
MyFrame8
 

이벤트 리스너 연습 위한 SuperMyFrame 클래스 설계

package ch01;

import javax.swing.JFrame;

public class SuperMyFrame extends JFrame {

	public SuperMyFrame() {

	}

	protected void initData() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	protected void setInitLayout() {
		setVisible(true);
	}

	protected void addEventListener() {

	}
}

이벤트 리스너1 연습 : 컬러체인지

package ch01;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JPanel;

public class ColorChangeFrame extends SuperMyFrame implements ActionListener {

	BorderLayout borderLayout;
	JPanel panel1;
	JPanel panel2;

	// 기본
//	JButton button1;
//	JButton button2;
//	JButton button3;
//	JButton button4;
//	JButton button5;
//	JButton button6;
//	JButton button7;
	// 배열
//	JButton[] buttons = new JButton[7];
	// 배열리스트
	final int BUTTONS_SIZE = 7;
	  //static
	ArrayList<JButton> buttons = new ArrayList<>();//선언과 초기화 동시에 

	// for문 시 이용
	Color[] colors = new Color[7];

	public ColorChangeFrame() {
		initData();
		setInitLayout();
		addEventListener();
	}

	@Override
	protected void initData() {

		super.initData();
		setTitle("이벤트 리스너 연습 3");
		setSize(600, 500);
		borderLayout = new BorderLayout();

		panel1 = new JPanel();
		panel2 = new JPanel();
		// 기본
//		button1 = new JButton("red"); 
//		button2 = new JButton("orange"); 
//		button3 = new JButton("yellow"); 
//		button4 = new JButton("green"); 
//		button5 = new JButton("cyan"); 
//		button6 = new JButton("blue"); 
//		button7 = new JButton("magenta"); 
		// 배열
//		buttons[0] = new JButton("red"); 
//		buttons[1] = new JButton("orange"); 
//		buttons[2] = new JButton("yellow"); 
//		buttons[3] = new JButton("green"); 
//		buttons[4] = new JButton("cyan"); 
//		buttons[5] = new JButton("blue"); 
//		buttons[6] = new JButton("magenta"); 
		//color 배열

		// for
	 for (int i = 0; i < BUTTONS_SIZE; i++) {
		
	}
	}

	@Override
	protected void setInitLayout() {
		super.setInitLayout();
		setLayout(borderLayout);
		panel1.setBackground(Color.gray);
		panel1.setPreferredSize(new Dimension(500, 400));
		add(panel1, BorderLayout.NORTH);

		panel2.setBackground(Color.white);
		panel2.setLayout(new FlowLayout());
		panel2.setPreferredSize(new Dimension(500, 100));
		add(panel2);
		//기본
//		panel2.add(button1);
//		panel2.add(button2);
//		panel2.add(button3);
//		panel2.add(button4);
//		panel2.add(button5);
//		panel2.add(button6);
//		panel2.add(button7);
		// 배열
//		panel2.add(buttons[0]);
//		panel2.add(buttons[1]);
//		panel2.add(buttons[2]);
//		panel2.add(buttons[3]);
//		panel2.add(buttons[4]);
//		panel2.add(buttons[5]);
//		panel2.add(buttons[6]);
		// for
//		for (int i = 0; i < colors.length; i++) {
//			panel2.add(buttons.get(i));
	}

	@Override
	protected void addEventListener() {
		super.addEventListener();
//		button1.addActionListener(this);
//		button2.addActionListener(this);
//		button3.addActionListener(this);
//		button4.addActionListener(this);
//		button5.addActionListener(this);
//		button6.addActionListener(this);
//		button7.addActionListener(this);
		// 배열
//		buttons[0].addActionListener(this);
//		buttons[1].addActionListener(this);
//		buttons[2].addActionListener(this);
//		buttons[3].addActionListener(this);
//		buttons[4].addActionListener(this);
//		buttons[5].addActionListener(this);
//		buttons[6].addActionListener(this);
		// for
		for (int i = 0; i < BUTTONS_SIZE; i++) {
			buttons.get(i).addActionListener(this);
		}
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// 1번 버튼이 눌러졌으면 panel1의 색상을 빨간색으로 변경
		// 2번 버튼이 눌러졌으면 panel2의 색상을 노란색으로 변경
		JButton clickedButton = (JButton) e.getSource();
//		if(clickedButton.getText().equals(button1.getText())){
//		if(clickedButton == button1) { 
//			panel1.setBackground(Color.red);
//		}else if(clickedButton == button2)  {	
//			panel1.setBackground(Color.orange);
//		}else if(clickedButton == button3)  {	
//			panel1.setBackground(Color.yellow);
//		}else if(clickedButton == button4)  {	
//			panel1.setBackground(Color.green);
//		}else if(clickedButton == button5)  {	
//			panel1.setBackground(Color.cyan);
//		}else if(clickedButton == button6)  {	
//			panel1.setBackground(Color.blue);
//		}else {	
//			panel1.setBackground(Color.magenta);
//		}
//	}
		// 배열
//		if(clickedButton == buttons[0]) { 
//			panel1.setBackground(Color.red);
//		}else if(clickedButton == buttons[1])  {	
//			panel1.setBackground(Color.orange);
//		}else if(clickedButton == buttons[2])  {	
//			panel1.setBackground(Color.yellow);
//		}else if(clickedButton == buttons[3])  {	
//			panel1.setBackground(Color.green);
//		}else if(clickedButton == buttons[4])  {	
//			panel1.setBackground(Color.cyan);
//		}else if(clickedButton == buttons[5])  {	
//			panel1.setBackground(Color.blue);
//		}else {	
//			panel1.setBackground(Color.magenta);
//		}
		// for
//		if(clickedButton == button[0]) { 
//			panel1.setBackground(Color.red);
//		}else if(clickedButton == buttons[1])  {	
//			panel1.setBackground(Color.orange);
//		}else if(clickedButton == buttons[2])  {	
//			panel1.setBackground(Color.yellow);
//		}else if(clickedButton == buttons[3])  {	
//			panel1.setBackground(Color.green);
//		}else if(clickedButton == buttons[4])  {	
//			panel1.setBackground(Color.cyan);
//		}else if(clickedButton == buttons[5])  {	
//			panel1.setBackground(Color.blue);
//		}else {	
//			panel1.setBackground(Color.magenta);
//		}
	}

	public static void main(String[] args) {
		new ColorChangeFrame();
	}
}

시스템 콜백

package ch01;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

class MyFrame1 extends JFrame implements ActionListener{
	
	JButton button;
	JButton button2;
	
	public  MyFrame1() {
		initData();
		setInitLayout();
		addEventListener();
	}
	private void initData() {
		setTitle("이벤트리스너 연습");
		setSize(500,500);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		button = new JButton("button 1");
		button2 = new JButton("button 2");
	}
	
	private void setInitLayout() {
		setVisible(true);
		setLayout(new FlowLayout());
		add(button);
		add(button2);
	}
	private void addEventListener() {
		button.addActionListener(this);
		button2.addActionListener(this);
	}//어떤 동작을 등록시키는 역할만 하는 
	@Override
	public void actionPerformed(ActionEvent e) {
		System.out.println("시스템 콜백 실행");
							//시스템 ★콜백★ - > 윈도우 운영체제에게 요청 
							//'사용자가 이 동작을 하였을 때 나에게 알려달라'인터페이스 -> 약속의 의미
		System.out.println("버튼이 클릭되었습니다.");
		System.out.println(e.toString());

	}
}

public class EventListenerEx1 {

	public static void main(String[] args) {
		new MyFrame1();
		
		
	}//end of main
}//end of class

이벤트 리스너2 연습 : 클릭한 버튼 출력

package ch01;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JFrame;

//인터페이스는 기능으로만 쓸 때
class MyFrame2 extends SuperMyFrame implements ActionListener {
	
	//기본
//	JButton button1;
//	JButton button2;
//	JButton button3;
//	JButton button4;
//	JButton button5;
	
	//베열
//	JButton[] buttons = new JButton[5];
	
	//ArrayList
	ArrayList<JButton> buttons = new ArrayList<>();
	 final int BUTTONS_SIZE = 5; 
	//final은 소문자
	 
	public MyFrame2() {
		initData();
		setInitLayout();
		addEventListener();
	}

	@Override
	protected void initData() {
		setTitle("이벤트 리스너 연습 2");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(500, 500);
		
		//기본
//		button1 = new JButton("이벤트 버튼 1");
//		button2 = new JButton("이벤트 버튼 2");
//		button3 = new JButton("이벤트 버튼 3");
//		button4 = new JButton("이벤트 버튼 4");
//		button5 = new JButton("이벤트 버튼 5");
		
		//배열
//		buttons[0] = new JButton("이벤트 버튼 1");
//		buttons[1] = new JButton("이벤트 버튼 2");
//		buttons[2] = new JButton("이벤트 버튼 3");
//		buttons[3] = new JButton("이벤트 버튼 4");
//		buttons[4] = new JButton("이벤트 버튼 5");
		//for문 변경 
		for (int i = 0; i < BUTTONS_SIZE; i++) {
			buttons.add(new JButton("이벤트 버튼"+(i+1)));
		}

	}

	@Override
	protected void setInitLayout() {
		setVisible(true);
		setLayout(new FlowLayout());
		
		//기본
//		add(button1);
//		add(button2);
//		add(button3);
//		add(button4);
//		add(button5);
		
		//배열
//		add(buttons[0]);
//		add(buttons[1]);
//		add(buttons[2]);
//		add(buttons[3]);
//		add(buttons[4]);
		
		//ArrayList
		for (int i = 0; i < BUTTONS_SIZE; i++) {
			add(buttons.get(i));
		}
	}

	@Override
	protected void addEventListener() {
		//기본
//		button1.addActionListener(this);
//		button2.addActionListener(this);
//		button3.addActionListener(this);
//		button4.addActionListener(this);
//		button5.addActionListener(this);
		//배열
//		buttons[0].addActionListener(this);
//		buttons[1].addActionListener(this);
//		buttons[2].addActionListener(this);
//		buttons[3].addActionListener(this);
//		buttons[4].addActionListener(this);
		//for문 
		for (int i = 0; i < BUTTONS_SIZE; i++) {
			buttons.get(i).addActionListener(this);
		}
	}

	@Override
	public void actionPerformed(ActionEvent e) {
//		System.out.println("버튼이 눌러졌습니다.");
		JButton clickedButton = (JButton) e.getSource();
		System.out.println(clickedButton.getText());
		// 문자열을 비교해서
		// 1번 버튼이 클릭되었습니다.
		// 2번 버튼이 클릭되었습니다.
		
		//기본
//		if (clickedButton.getText().equals(button1.getText())) {
//			System.out.println("1번 버튼이 클릭되었습니다.");
//		} else if (clickedButton.getText().equals(button2.getText())) {
//			System.out.println("2번 버튼이 클릭되었습니다.");
//		} else if (clickedButton.getText().equals(button3.getText())) {
//			System.out.println("3번 버튼이 클릭되었습니다.");
//		} else if (clickedButton.getText().equals(button4.getText())) {
//			System.out.println("4번 버튼이 클릭되었습니다.");
//		} else {
//			System.out.println("5번 버튼이 클릭되었습니다.");
//		}
		
		//배열
//		if (clickedButton.getText().equals(buttons[0].getText())) {
//			System.out.println("1번 버튼이 클릭되었습니다.");
//		} else if (clickedButton.getText().equals(buttons[1].getText())) {
//			System.out.println("2번 버튼이 클릭되었습니다.");
//		} else if (clickedButton.getText().equals(buttons[2].getText())) {
//			System.out.println("3번 버튼이 클릭되었습니다.");
//		} else if (clickedButton.getText().equals(buttons[3].getText())) {
//			System.out.println("4번 버튼이 클릭되었습니다.");
//		} else {
//			System.out.println("5번 버튼이 클릭되었습니다.");
//		}
		
		//for 문 변경
//		for (int i = 0; i < buttons.length; i++) {
//			
//		}
	}
}

public class EventListenerEx2 {

	public static void main(String[] args) {
		new MyFrame2();
	}
}

MyFrame4 익명 구현 객체 사용해보기

package ch02;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class MyFrame4 extends JFrame{
		
	JButton button;
	JButton button2;
	//코드 수정
	//1. button2 생성
	//2. add , 
	//3. 이벤트 리스너 등록 ---> 익명구현 객체를 사용해서 처리 
	//4. 실행확인
	public MyFrame4() {
		initData();
		setInitLayout();
		addEventListener();
	}
	private void initData() {
		setTitle("익명구현객체 사용해보기");
		setSize(500, 500);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		button = new JButton("이벤트 등록 후 대기");
		button2 = new JButton("이벤트 등록 후 대기2");
	}
	private void setInitLayout() {
		setVisible(true);
		add(button, BorderLayout.NORTH);
		add(button2, BorderLayout.SOUTH);
	
		
	}
	private void addEventListener() {
		
		ActionListener ac = new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println("버튼 클릭됨");
				System.out.println("추후 알아서 구분 코드 작성해주세요");
		
			}
		};
		
		//익명 구현 객체 
		//일회성의 인터페이스를 익명 구현 객체로 만들어서 사용할 수 있다.
		button.addActionListener(ac);
		button2.addActionListener(ac);
		button2.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println("버튼이 클릭되었습니다.");
				
			}
		});
	
//		button.addActionListener(new ActionListener() {
//			//추상메서드를 일반 메서드로 구현했다.
//			public void actionPerformed(ActionEvent e) {
//				
//			}
//			
//		});
	}//end 
	public static void main(String[] args) {
//		MyFrame4 mf = new MyFrame4();
//		mf.button.setText("안녕하세요");
		//익명 클래스 (인스턴스 변수가 없기 때문에 지속적으로 접근해서 사용할 수는 없다.)
		new MyFrame4();
		

	}
}//end of class

MyFrame5 마우스 리스너 (hello java~가 마우스 클릭하면 따라옴)

package ch02;

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class MyFrame5 extends JFrame{
	
	JLabel label;
	
	public MyFrame5() {
		initData();
		setInitLayout();
		addEventListener();
	}
	
	private void initData() {
		setTitle("마우스 이벤트");
		setSize(500, 500);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		label = new JLabel("Hello java ~ ");
		label.setSize(150, 50);
	}
	private void setInitLayout() {
		setVisible(true);
		setLayout(null);
		add(label);
		label.setLocation(12,40);
	}
	private void addEventListener() {
		
		this.addMouseListener(new MouseListener() {
			
			//마우스가 떨어졌을 때 실행되는 메서드
			@Override
			public void mouseReleased(MouseEvent e) {
			}
			//마우스가 눌러졌을 때 실행되는 메서드
			@Override
			public void mousePressed(MouseEvent e) {
			}
			//마우스가 나갔을 때 실행되는 메서드
			@Override
			public void mouseExited(MouseEvent e) {
			}
			//마우스가 들어왔을 때 실행되는 메서드
			@Override
			public void mouseEntered(MouseEvent e) {
			}
			//마우스가 클릭되었을 때 실행되는 메서드
			@Override
			public void mouseClicked(MouseEvent e) {
//				System.out.println(e.getX() + "좌표값X");
//				System.out.println(e.getY() + "좌표값Y");
				label.setLocation(e.getX(),e.getY());
			}
			
		});
		
	}//end of EventListener
	//main function 
	public static void main(String[] args) {
		new MyFrame5();
	}//end of main
}

MyFrame6 어댑터 클래스 이용 (패널 클릭 시 클릭된 위치의 x, y좌표값이 출력)

package ch02;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;

public class MyFrame6 extends JFrame{
	
	//어댑터 패턴 -> 디자인 패턴의 일종
	//마우스리스너 >>5개나됨 다안씀 ,내가 쓰는 메서드의 하나만 만들어서 쓰는 것
	 
	
	public MyFrame6() {
		initData();
		setInitLayout();
		addEventListener();
	}
	private void initData() {
		setTitle("어댑터 클래스 이용");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(500, 500);
		
	}
	private void setInitLayout() {
		setVisible(true);
	}
	private void addEventListener() {
		this.addMouseListener(new MyMouseListener());
	}
	//추상클래스는 new 키워드를 사용할 수 없다. --> 클래스의 타입으로만 존재한다.
	//어댑터 패턴이란 추상메서드를 다 구현하고 (일반 메서드로 다 변환) {단, 메서드의 바디 부분을 비워놓음}
	//내부 클래스 생성
	//마우스 어댑터는 일반메서드만 존재하기 때문에 추상메서드가 없는 상태
	private class MyMouseListener extends MouseAdapter{
		//메서드 재정의
		@Override
		public void mouseClicked(MouseEvent e) {
			int x = e.getX();
			int y = e.getY();
			System.out.println("x좌표값 : " + x);
			System.out.println("y좌표값 : " + y);
		
		}
	} 
	
	//main function
	public static void main(String[] args) {
		new MyFrame6();
	}//end of main
}//end of class

 


MyFrame7 키 이벤트 (방향키 누르는대로 패널에 나옴)

package ch02;

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JTextArea;

public class MyFrame7 extends JFrame{

	JTextArea area;
	//자료형 대문자 -> 클래스타입, 점연산자 사용가능
	public MyFrame7() {
		initData();
		setInitLayout();
		addEventListener();
	}
	private void initData() {
		setTitle("키 이벤트 연습");
		setSize(500, 500);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		area = new JTextArea();
	}
	private void setInitLayout() {
		setVisible(true);
		this.add(area);
	}
	
	private void addEventListener() {
//		area.addKeyListener(this);//이 클래스 자체가 JFrame이자 KeyListener이기 때문이다.
		area.addKeyListener(new KeyAdapter() {
		
			@Override
			public void keyPressed(KeyEvent e) {
				
				if(e.getKeyCode() == KeyEvent.VK_UP) {
					area.append("방향키" +" : ↑" + "\n");
				}else if(e.getKeyCode() == KeyEvent.VK_DOWN) {
					area.append("방향키" +" : ↓"+ "\n");
				}else if(e.getKeyCode() == KeyEvent.VK_LEFT) {
					area.append("방향키" +" : →"+ "\n");
				}else if(e.getKeyCode() == KeyEvent.VK_RIGHT){
					area.append("방향키" +" : ←"+ "\n");
				}
			}
		});
	}

	//문자를 눌렀을 때 호출, 문자키에만 반응 합니다.
//	@Override
//	public void keyTyped(KeyEvent e) {
//		System.out.println("keyTyped" + e.getID());
//	}
	
	//키보드를 눌렀을 때 호출, 모든 키보드에 반응 합니다.
//	@Override
//	public void keyPressed(KeyEvent e) {
//		System.out.println("keyPressed" + e.getID());
//	}
//	@Override
//	public void keyPressed(KeyEvent e) {
//		System.out.println("keyPressed" + e.getID());
//		e.getKeyCode();
//		System.out.println(e.getKeyCode());
//		area.setText(e.getKeyCode() + "");
//		area.append(e.getKeyCode() + "\n");
		
//		if(e.getKeyCode() == KeyEvent.VK_UP) {
//			area.append("방향키" +" : ↑" + "\n");
//		}else if(e.getKeyCode() == KeyEvent.VK_DOWN) {
//			area.append("방향키" +" : ↓"+ "\n");
//		}else if(e.getKeyCode() == KeyEvent.VK_LEFT) {
//			area.append("방향키" +" : →"+ "\n");
//		}else if(e.getKeyCode() == KeyEvent.VK_RIGHT){
//			area.append("방향키" +" : ←"+ "\n");
//		}
		//위쪽 방향키
		//아래쪽 방향키
		//좌 방향키
		//우 방향키
//	}
	//키보드를 뗐을 때 호출, 모든 키보드에 반응 합니다.
//	@Override
//	public void keyReleased(KeyEvent e) {
//		System.out.println("keyReleased" + e.getID());
		
	}

결과

package ch02;

import java.util.Scanner;

public class MainTest1 {

	public static void main(String[] args) {
		MyFrame7 frame7 = new MyFrame7();
		
		//외부에서 사용
		Scanner scanner = new Scanner(System.in);
		System.out.println("글자를 입력하세요");
		String userInput = scanner.nextLine();
		frame7.area.setText(userInput + "\n");
		
//		new MyFrame8();
	}

}

MyFrame8 이미지 백그라운드 연습 (어몽어스 방향키로 움직이면 좌표값 출력)

package ch02;

import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class MyFrame8 extends JFrame{
	
//	Icon ic = new ImageIcon("sdf.gif");
	BufferedImage backgroundImage;
	BufferedImage imageIcon1;
	MyImagePanel imagePanel;
	int xPoint = 200;
	int yPoint = 200;
	int Point = 200;
//	URL url = getClass().getResource("sdf.gif");
	
	
	public MyFrame8() {
		initData();
		setInitLayout();
		addEventListener();
//		ic = new ImageIcon(ic);
//		this.getContentPane().add(icon);
	}
	private void initData() {
		setTitle("이미지 백그라운드 연습 2");
		setSize(500, 500);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		try {
			backgroundImage = ImageIO.read(new File("background1.jpg"));
			imageIcon1 = ImageIO.read(new File("among1.png"));
//			imageIcon1 = ImageIO.read(new File("among2.png"));
		} catch (Exception e) {
			System.err.println("파일이 없습니다.");
			System.exit(0);//프로그램을 알아서 종료시키는 명령어
		}
		
		imagePanel = new MyImagePanel();
		
	}
	private void setInitLayout() {
		this.setVisible(true);
		this.setResizable(false);//크기를 줄이거나 늘리지 못하게 막는 코드
		this.add(imagePanel);
	}
	private void addEventListener() {
							//익명 구현 객체
		this.addKeyListener(new KeyAdapter() {
			@Override
			public void keyPressed(KeyEvent e) {
				//삼항연산자로 사용해서 코드를 작성해주세요
				// 조건식 ? 결과1 : 결과2; 
				int keyCode = e. getKeyCode();
				if(keyCode == KeyEvent.VK_UP) {
					yPoint = (yPoint < -10)? 0 : yPoint - 10;
					System.out.println("yPoint : " + yPoint);
				}else if (keyCode == KeyEvent.VK_DOWN) {
					yPoint = (yPoint > 390)? 390 : yPoint + 10;
					System.out.println("yPoint : " + yPoint);
				}else if (keyCode == KeyEvent.VK_LEFT) {
					xPoint = (xPoint < -10)? 0 : xPoint - 10;
					System.out.println("xPoint : " + xPoint);
				}else if (keyCode == KeyEvent.VK_RIGHT) {
					xPoint = (xPoint > 410)? 410 : xPoint + 10;
					System.out.println("xPoint : " + xPoint);
				}
				repaint();
				
				//switch-case문으로 변경
				

			}// end of KeyPressed
		});
	}
	
	//내부 클래스 생성
	private class MyImagePanel extends JPanel{
		@Override
		protected void paintComponent(Graphics g) {
			super.paintComponent(g);
			g.drawImage(backgroundImage, 0, 0, 500, 500, null);
			g.drawImage(imageIcon1, xPoint, yPoint, 80, 80, null);
		}
	}

}//end of class

결과

package ch02;

public class MainTest1 {

	public static void main(String[] args) {

		new MyFrame8();
	}

}