본문 바로가기
JAVA/개념정리

[JAVA] Swing : 외부선언, 내부선언

by JJH0100 2022. 10. 13.
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

댓글