일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- vlan
- Python
- abex'crackme
- 자바
- vector
- 인공지능
- CISCO
- cmd
- 머신러닝 프로세스
- dreamhack
- 머신러닝
- 암호학
- docker
- 크롤러
- 온프레미스
- bastion host
- 네트워크
- Reversing
- Firewall
- AI
- 라우터
- STP
- 리버싱
- RIP
- 스위치
- Java
- Repository
- AWS
- Screening Router
- Mac
- Today
- Total
Haekt‘s log
[JAVA] GUI 버튼에 이벤트 넣기 본문
아래와 같은 UI 창에서 버튼을 눌렀을 때 특정 값이 출력되는 이벤트를 코딩 해보자.
UI는 아래의 사진을 보고 한번 직접 만들어보자.
hello 를 눌렀을 때
not hello 를 눌렀을 때
* GUI만들기 참고
https://haekt-log.tistory.com/50
- 이벤트 처리 코딩 과정
- java.awt.event.* 추가
- 클래스에 ActionListener 상속받기.
- 버튼에 ActionListener 추가
- ActionPerformed 코딩
1. java.awt.event.* 추가
Event 관련 클래스는 java.awt.event.* 에 위치해 있다.
// awt.* 해도 안먹힘. 이벤트는 별개로 해줘야 한다.
import java.awt.event.*;
2. 클래스에 ActionListener 상속받기
클래스에 ActionListener 를 상속받아야 event를 감지하고 동작할 수 있다.
// ActionListener 를 implements 해준다.
public class event_test implements ActionListener
{
}
위와 같이 implements ActionListener 를 추가해주면, 클래스가 빨간색으로 줄쳐지게 된다.
ActionListener 클래스의 멤버함수를 추가하지 않았기 때문이다.
extends 와 다르게, implements 는 자식 클래스에서 부모객체의 멤버를 Override(재정의) 해줘야 한다.
클래스에 마우스를 가져다 대고, Add unimplemented 를 눌러 Override 해준다.
그럼 이런식으로 클래스 내에 actionPerformed() 라는 함수가 재정의 된다.
3. 버튼에 ActionListener 추가하기
버튼을 눌렀을 때 어떤 ActionListener 를 실행할지 추가해줘야 한다.
괄호안에 this를 써서 방금만든 함수를 실행시킬수도, 다른 ActionListener 클래스의 멤버함수를 실행시킬 수도 있다.
//this 인 이유는 해당 클래스 안에 직접 Override 를 했기 때문.
버튼변수.addActionListener(this);
//클래스 안에 직접 Override 하지 않은 클래스를 사용할 경우.
버튼변수.addActionListener(new B());
// 예시
b1.addActionListener(this);
b2.addActionListener(new B());
- 다른 클래스를 생성하여 실행하는 방법 2가지
먼저 1번째 방법이다.
ActionListener 클래스를 상속받는 다른 클래스를 이용하는 방법이다.
실행시킬 클래스의 이름을 함수의 괄호안에 적어준다.
//버튼변수.addActionListener(new 클래스이름());
b2.addActionListener(new B());
그 후 클래스 안에 새로 클래스를 추가해준다.
// public class 클래스이름 JFrame implements ActionListener{
// ...
//클래스 안에 작성
// public class 클래스이름 implements ActionListener{
public class B implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// 버튼을 누르면 여기에 적힌 코드가 실행됨
}
}
// ...
// } //event
2번째 방법이다.
버튼에 ActionListener 를 추가하는 부분에 직접 ActionListener 클래스를 추가해주는 방법이다.
//버튼변수.addActionListener(new ActionListener(){ });
b2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//버튼을 누르면 여기에 적힌 코드가 실행됨
}
});
4. ActionPerformed 코딩하기
앞서 2번에서 추가했던 actionPerformed() 함수 안에 작동할 코드를 작성하면 끝이난다.
이제 버튼을 누르면 actionPerformed() 함수에 작성한 코드가 실행된다.
'언어 > JAVA' 카테고리의 다른 글
[JAVA] DB 연결 코딩하기 (0) | 2022.11.30 |
---|---|
[JAVA] DB 연결을 위한 lib참조 Path 설정 (0) | 2022.11.29 |
[JAVA] 자바로 GUI (창)띄우기 (0) | 2022.10.12 |
[JAVA] 중첩된 반복문 선택해서 break 하기 (0) | 2022.10.12 |
[JAVA] Vector 의 사용법 (0) | 2022.10.04 |