mojo's Blog
Adapter Class 본문
자바의 JDK에서 여러 메소드를 모두 작성해야 하는 부담을 줄이기 위해 리스너 인터페이스를 미리 구현해 놓은 클래스를 제공하는데 이것이 바로 Adapter Class 라고 한다.
개발자들은 이벤트 리스너를 작성할 때, 리스너 인터페이스 대신 어댑터 클래스를 이용하는 것이 훨씬 편리하다.
Adapter Class를 사용하지 않고 구현한 code
import javax.swing.*; // JFrame
import java.awt.*; // Container
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class IndepClassListener extends JFrame{
private JLabel la = new JLabel("Hello");
public IndepClassListener() {
setTitle("Action 이벤트 리스너 예제");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c=getContentPane();
c.setLayout(null);
c.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
int x=e.getX();
int y=e.getY();
la.setLocation(x,y);
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
});
la.setSize(50,20);
la.setLocation(30,30);
c.add(la);
setSize(350,150);
setVisible(true);
}
public static void main(String [] args) {
new IndepClassListener();
}
}
Adapter 를 사용한 code (Interface에 존재하는 abstract method를 일일이 구현하지 않아서 편리함)
import javax.swing.*; // JFrame
import java.awt.*; // Container
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class IndepClassListener extends JFrame{
private JLabel la = new JLabel("Hello");
public IndepClassListener() {
setTitle("Action 이벤트 리스너 예제");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c=getContentPane();
c.setLayout(null);
c.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
int x=e.getX();
int y=e.getY();
la.setLocation(x,y);
}
});
la.setSize(50,20);
la.setLocation(30,30);
c.add(la);
setSize(350,150);
setVisible(true);
}
public static void main(String [] args) {
new IndepClassListener();
}
}
'Java' 카테고리의 다른 글
명품 JAVA Programming 제 10장 Open Challenge (0) | 2021.07.28 |
---|---|
KeyListener / MouseListener (0) | 2021.07.28 |
Action Listener 작성하기 (0) | 2021.07.28 |
명품 JAVA Programming 제 8장 Open Challenge (0) | 2021.07.22 |
키보드 입력을 파일로 저장하기 (0) | 2021.07.22 |
Comments