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

+ Recent posts