1. 익명 클래스를 만들어서 클래스 안에 구현을 한다.
이 방법은 간단한 내용을 구현할 때 사용한다.
하지만, 이벤트를 부르는 클래스의 필드 접근이 번거로워서 잘 사용하지 않는다.
public class Test extends JFrame {
private JPanel contentPane;
public static void main(String[] args) {
Test frame = new Test();
frame.setVisible(true);
}
public Test() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JButton btnNewButton = new JButton("버튼");
btnNewButton.setFont(new Font("굴림", Font.PLAIN, 30));
btnNewButton.setBounds(76, 72, 240, 102);
contentPane.add(btnNewButton);
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null,"이벤트 실행됨");
}
});
}
}
2. 클래스에 ActionLister 인터페이스를 구현
이 방법은 내가 주로 사용하는 방법이다.
클래스의 필드 접근 및 함수 접근이 용이하다
public class Test extends JFrame implements ActionListener{//ActionListener 구현
private JPanel contentPane;
public static void main(String[] args) {
Test frame = new Test();
frame.setVisible(true);
}
public Test() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JButton btnNewButton = new JButton("버튼");
btnNewButton.setFont(new Font("굴림", Font.PLAIN, 30));
btnNewButton.setBounds(76, 72, 240, 102);
contentPane.add(btnNewButton);
btnNewButton.addActionListener(this);
//ActionListener를 구현한 현재 클래스를 매개변수로 넘김
btnNewButton.setActionCommand("event");
//이벤트 컴포넌트 중 어느 컴포넌트에서 실행했는지 구분하기 위해
//다음과 같이 ActionCommand를 지정한다.
}
@Override
public void actionPerformed(ActionEvent e) {//ActionListener를 implements한 함수
switch(e.getActionCommand())//이벤트에서 지정된 ActionCommand를 가져옴
{
//자바 7 에서는 switch구문에 string를 사용할 수 있다.
//자바 하위버전 및 안드로이드에서는 안된다.....
case "event"://지정한 ActionCommand
JOptionPane.showMessageDialog(null,"이벤트 실행됨");
break;
}
}
}
'컴퓨터공학 > Java Scala' 카테고리의 다른 글
자바 Frame,Dialog 초기 위치 설정 (0) | 2012.06.06 |
---|---|
자바 파일 다이얼로그 (0) | 2012.06.01 |
자바 배열 복사 (0) | 2012.06.01 |
자바 파일 char 한 글자씩 가져오기 (0) | 2012.05.31 |
자바 10진수 16진수간 변환 (0) | 2012.05.28 |