• 일부 기능 단위의 코드를 분리하는 경우

Program

import java.awt.event.WindowListener;

public class Program {

	public static void main(String[] args) {
		GameFrame frame = new GameFrame();
		WindowListener listener = new GameWindowListener();
		frame.addWindowListener(listener);
		frame.setVisible(true);
	}

}

GameFrame

import java.awt.Frame;
import java.awt.Graphics;

public class GameFrame extends Frame{

	@Override
	public void paint(Graphics g) {
		super.paint(g);
		
		g.drawRect(100, 100, 200, 100);
	}
	
}

GameWindowListener

import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JOptionPane;

public class GameWindowListener implements WindowListener {

	@Override
	public void windowOpened(WindowEvent e) {
	}

	@Override
	public void windowClosing(WindowEvent e) {
		JOptionPane.showMessageDialog(null, "Good bye~~");
		System.exit(0);
	}

	@Override
	public void windowClosed(WindowEvent e) {
	}

	@Override
	public void windowIconified(WindowEvent e) {
	}

	@Override
	public void windowDeiconified(WindowEvent e) {
	}

	@Override
	public void windowActivated(WindowEvent e) {
	}

	@Override
	public void windowDeactivated(WindowEvent e) {
	}

}

-> 강제로 종료되게 했다. ![인터]](/assets/images/인터.JPG)

인터페이스가 일부기능에대해서 사용자에게 (내가결정할수없으니) 만들라고 미뤄둘때도 인터페이스 결합으로 미룰수가있다.

댓글남기기