doublemetal 2013. 7. 19. 11:12


이 프로그램은 마우스가 클릭하는 곳으로 글자(레이블)을 이동시키는 기능을 가진다.



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);

}

}

}