티스토리 뷰
이 프로그램은 마우스가 클릭하는 곳으로 글자(레이블)을 이동시키는 기능을 가진다.
public class MouseAdapterEx extends JFrame {
JPanel contentPane = new JPanel();
JLabel la;
MouseAdapterEx() {
setTitle("Mouse");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setContentPane(contentPane);
setLayout(null);
contentPane.addMouseListener(new MyMouseAdapter());
//패널에 리스너를 붙인다. 이너 클래스객체를 인자로 전달
la = new JLabel("Hello");
la.setSize(50, 20);
la.setLocation(30, 30);
contentPane.add(la);
setSize(200, 200);
setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new MouseAdapterEx();
}
class MyMouseAdapter extends MouseAdapter {
//리스너를 구현하는 대신에 어댑터를 상속받았다.
//어댑터는 2개 이상의 메소드를 가진 인터페이스의 이름과
//같은 이름으로 존재한다.
//인터페이스가 아니라 클래스이기 때문에
//반드시 구현할 필요 없이 사용하고자하는 메소드만 구현하면 된다.
public void mousePressed(MouseEvent e) {
int x = e.getX();
int y = e.getY();
la.setLocation(x, y);
}
}
}
'java,web study > 3주차 (7월 15일 ~21일)' 카테고리의 다른 글
KeyListenerEx (0) | 2013.07.19 |
---|---|
Event Delegation (0) | 2013.07.19 |
InnerClassListener (0) | 2013.07.19 |
ListenerMouseEx (0) | 2013.07.19 |
ListenerSample (0) | 2013.07.19 |