S.S.G
MouseListener 사용 해보기 본문
* 마우스로 문자열 이동시키기
- 프레임상의 임의의 위치에 마우스 버튼을 누르면 마우스 포인트가 있는 위치에 "Hello" 문자열을 출력
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;
public class Test extends JFrame {
JPanel contentPane = new JPanel();
JLabel la;
Test() {
setTitle("마우스 이벤트 예제");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setContentPane(contentPane);
contentPane.setLayout(null);
contentPane.addMouseListener(new MyMouseListener());
la = new JLabel("hello");
la.setSize(50, 20);
la.setLocation(30, 30);
contentPane.add(la);
setSize(400, 400);
setVisible(true);
}
class MyMouseListener implements MouseListener {
public void mousePressed(MouseEvent e) {
int x = e.getX();
int y = e.getY();
la.setLocation(x, y);
}
// MouseListener 인터페이스의 나머지 4개 메소드도 모두 구현하여야 실행이 됨.
@Override
public void mouseClicked(MouseEvent e) { }
@Override
public void mouseReleased(MouseEvent e) { }
@Override
public void mouseEntered(MouseEvent e) { }
@Override
public void mouseExited(MouseEvent e) { }
}
public static void main(String arg[]) {
new Test();
}
}
* MouseAdapter 클래스 사용
- 자바의 JDK는 이벤트 리스너 인터페이스를 미리 구현해놓은 클래스를 제공함. ( 사용하고자 하는 인터페이스만 사용하고 나머지 인터페이스는 생략가능)
public class Test extends JFrame {
JPanel contentPane = new JPanel();
JLabel la;
Test() {
setTitle("마우스 이벤트 예제");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setContentPane(contentPane);
contentPane.setLayout(null);
contentPane.addMouseListener(new MyMouseAdapter()); --> 변경된 부분
la = new JLabel("hello");
la.setSize(50,20);
la.setLocation(30,30);
contentPane.add(la);
setSize(400, 400);
setVisible(true);
}
class MyMouseAdapter extends MouseAdapter{ -->변경된 부분
public void mousePressed(MouseEvent e){
int x = e.getX();
int y = e.getY();
la.setLocation(x,y);
}
}
public static void main(String arg[]) {
new Test();
}
}
실행 결과
'코딩 > JAVA' 카테고리의 다른 글
Action 이벤트를 이용한 콤보박스 (0) | 2016.07.05 |
---|---|
JRadioButton & Item (0) | 2016.07.05 |
이벤트 리스너 작성해보기(내부클래스, 독립된 클래스, 익명 클래스) (0) | 2016.07.04 |
Collections 클래스 활용 (0) | 2016.07.04 |
HashMap<K,V> (0) | 2016.07.01 |