728x90
반응형
외부클래스
package SwingEx;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class EventClass implements ActionListener {
private JLabel jl;
public EventClass(JLabel jl){
this.jl = jl;
}
@Override
public void actionPerformed(ActionEvent e) {
jl.setText(e.getActionCommand());
}
}
public class EventTest3 extends JFrame{
JLabel jl;
JButton jb1, jb2;
public EventTest3 (){
Container ct = getContentPane();
ct.setLayout(new FlowLayout());
jb1 = new JButton("사랑 합니다.");
jb2 = new JButton("행복 합니다.");
jl = new JLabel("버튼을 누르세요.");
jb1.addActionListener(new EventClass(jl));
jb2.addActionListener(new EventClass(jl));
ct.add(jb1);
ct.add(jb2);
ct.add(jl);
setSize(250, 150);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new EventTest3();
}
}
내부클래스
package SwingEx;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class EventTest3 extends JFrame{
JLabel jl;
JButton jb1, jb2;
public EventTest3 (){
Container ct = getContentPane();
ct.setLayout(new FlowLayout());
jb1 = new JButton("사랑 합니다.");
jb2 = new JButton("행복 합니다.");
jl = new JLabel("버튼을 누르세요.");
jb1.addActionListener(new EventProcess());
jb2.addActionListener(new EventProcess());
ct.add(jb1);
ct.add(jb2);
ct.add(jl);
setSize(250, 150);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
private class EventProcess implements ActionListener{ //내부클래스
@Override
public void actionPerformed(ActionEvent e) {
jl.setText(e.getActionCommand());
}
}
public static void main(String[] args) {
new EventTest3();
}
}
728x90
반응형
'JAVA > 개념정리' 카테고리의 다른 글
[JAVA] 예외처리 (0) | 2022.10.14 |
---|---|
[JAVA] Swing : MouseEvent (0) | 2022.10.13 |
[JAVA] Swing의 JFrame (0) | 2022.10.13 |
[JAVA] AWT와 Swing (0) | 2022.10.13 |
[JAVA] 추상(abstract) 클래스와 오버라이딩 (0) | 2022.10.13 |
댓글