JFrame 안에 JButton을 추가하고 프레임 창에서 누르면 action이 발생한다
이 action을 구현하려면 이것을 받는 ActionListner가 있어야한다
ActionListener는 인터페이스로 Action에 대한 추상메소드를 가지고 있다
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
class MyFrame extends JFrame {
public MyFrame() {
super("나의 프레임"); // 상위 클래스 JFrame의 생성자로 이름을 설정해준다.
setLayout(new FlowLayout()); // 플로우 레이아웃으로 변경해준다
setSize(500, 500);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JButton btn = new JButton("버튼"); // 버튼 이라는 이름을 가진 버튼 생성
JLabel jlb = new JLabel("0");
add(jlb);
add(btn);
// 버튼을 프레임 안에 넣어주는 것
ActionListener li = new ActionListener() {
// 액션리스너는 인터페이스이다 안에 액션을 받아 돌려주는 메소드
public void actionPerformed(ActionEvent e) {
String jlbstring = jlb.getText();
Integer jlbint = Integer.valueOf(jlbstring);
jlbint++;
jlb.setText(String.valueOf(jlbint));
}
};
btn.addActionListener(li);
}
}
public class Main {
public static void main(String[] args) {
MyFrame frame = new MyFrame();
frame.setVisible(true);
}
}
인스턴스임으로 ActionListner를 받는 클래스를 통해 메소드를 정의하여야하는데
위와 같이 클래스의 이름 없이도 사용이 가능하나 이름이 없기 때문에 생성자는 존재하지 않는다
class MyActionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("사용자가 버튼을 누름");
}
1. JButton에 사용가능한 메소드
- new JButton().setBounds(150, 150, 100, 100); // 버튼의 좌표와 크기를 정하는 메소드
- newJButton().setActionCommand(String string) ; // 해당버튼에 명령 부여하기
'JAVA' 카테고리의 다른 글
ItemListener로 햄버거 주문하기 (0) | 2022.01.04 |
---|---|
JFrame의 레이아웃 - FlowLayout , BoxLayout, GridLayout (0) | 2022.01.03 |
JTextField와 JButton으로 간단한 로그인 창 구현하기 (0) | 2022.01.03 |
JButton으로 프레임 배경 색 바꾸기 (0) | 2022.01.03 |
GUI , JFrame (0) | 2021.12.31 |