방명록
- pannelTest1,2,32021년 04월 19일 16시 22분 09초에 업로드 된 글입니다.작성자: 원2728x90반응형
pannelTest1 package javaProject; import java.awt.Button; import java.awt.Color; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class pannelTest extends JFrame implements ActionListener { pannelTest() { setLayout(new FlowLayout()); // 배치방법 JButton btn1 = new JButton("버튼1"); JButton btn2 = new JButton("버튼2"); JButton btn3 = new JButton("버튼3"); // Button btn4 = new Button("버튼4"); // 다른 모양의 버튼 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 종료할때 완전히 끄기 위해서. add(btn1); // 여기서의 add: 상위 객체에 add를 하겠다. // 프레임에 부착 add(btn2); // 여기서의 add: 상위 객체에 add를 하겠다. // 프레임에 부착 add(btn3); // 여기서의 add: 상위 객체에 add를 하겠다. // 프레임에 부착 // add(btn4); // 여기서의 add: 상위 객체에 add를 하겠다. // 프레임에 부착 btn1.addActionListener(this); // 이벤트 핸들러와 연결 btn2.addActionListener(this); // 이벤트 핸들러와 연결 btn3.addActionListener(this); // 이벤트 핸들러와 연결 setSize(300, 400); // 프레임의 크기 setVisible(true); // 버튼을 일일히 만들어 줘야한다. } public static void main(String[] args) { new pannelTest(); // 셍성자를 통해서 객체를 하나 만든다. } @Override public void actionPerformed(ActionEvent e) { // 이벤트 핸들러 // e : 인스턴스 변수 String str = e.getActionCommand(); // btn1,btn2,btn3 를 구분시켜줌 // System.out.println(str); // 그걸 출력 if (str.equals("버튼1")) { // 배경색 변경 getContentPane().setBackground(Color.GREEN); // 컨테이너로 입장, 배경색 변경. } else if (str.equals("버튼2")) { getContentPane().setBackground(Color.BLUE); } else if (str.equals("버튼3")) { // else if라서 마지막은 "버튼3"을 넣지 않아도 된다. getContentPane().setBackground(Color.YELLOW); } } }
pannelTest2 package javaProject; import java.awt.Button; import java.awt.Color; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class pannelTest2 extends JFrame { public pannelTest2() { super("내부클래스"); setLayout(new FlowLayout()); JButton btn1 = new JButton("버튼1"); JButton btn2 = new JButton("버튼2"); JButton btn3 = new JButton("버튼3"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); add(btn1); add(btn2); add(btn3); ActionH ah = new ActionH(); // 객체를 생성하고 btn1 을 실행 클래스 내부에서 계속 실행 btn1.addActionListener(ah); btn2.addActionListener(ah); btn3.addActionListener(ah); setSize(300, 400); setVisible(true); } class ActionH implements ActionListener { @Override public void actionPerformed(ActionEvent e) { // actionPerformed를 @Override해야함 String str = e.getActionCommand(); if (str.equals("버튼1")) { getContentPane().setBackground(Color.PINK); } else if (str.equals("버튼2")) { getContentPane().setBackground(Color.CYAN); } else { getContentPane().setBackground(Color.BLACK); } // 내부클래스(이벤트 처리) , 왜 내부 클래스가 편한지를 확인 } // But 코드가 주렁주렁달려서 불편하다. } public static void main(String[] args) { new pannelTest2(); } }
pannelTest3 package javaProject; import java.awt.Button; import java.awt.Color; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class pannelTest3 extends JFrame { public pannelTest3() { super("익명클래스연습"); setLayout(new FlowLayout()); JButton btn1 = new JButton("버튼1"); JButton btn2 = new JButton("버튼2"); JButton btn3 = new JButton("버튼3"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); add(btn1); add(btn2); add(btn3); // actionPerformed을 적을거임 여기에 btn1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { getContentPane().setBackground(Color.BLACK); } }); btn2.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { getContentPane().setBackground(Color.GREEN); } }); btn3.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { getContentPane().setBackground(Color.YELLOW); } }); setSize(300, 400); setVisible(true); } public static void main(String[] args) { new pannelTest3(); } }
1번눌렸을 때 2번 눌렸을 때 3번 눌렸을 때 728x90반응형'Language > Java' 카테고리의 다른 글
플레이어 미완++ (0) 2021.04.20 PlayerView (미완) (0) 2021.04.20 Swing 치트키 (0) 2021.04.20 Bank (0) 2021.04.19 JDBC연결 (0) 2021.04.19 ItemEvent (0) 2021.04.19 다음글이 없습니다.이전글이 없습니다.댓글