[Java/Swing] ActionListener - 배경 색 변경하기

2023. 2. 18. 18:52·Java/Swing (GUI)
728x90
728x90

  - 버튼을 누르면 패널의 배경이 지정된 색으로 변경되도록 함

  - 배열을 사용해서 코드 간소화

 

코드

public class ChangeRainbow extends JFrame implements ActionListener {

    // 버튼을 배치할 패널
    private JPanel panel1;

    // 배경 색을 변경할 패널
    private JPanel panel2;

    // 버튼 배열
    private JButton[] buttons = new JButton[5];

    // 배경 색 배열
    private Color[] colors = {Color.red, Color.orange, Color.yellow, Color.green, Color.blue};

    public ChangeRainbow() {
        initData();
        setInitLayout();
        addEventListener();
    }

    private void initData() {
        setTitle("배경 색 바꾸기");
        setSize(530, 500);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        panel1 = new JPanel();
        panel2 = new JPanel();
        panel2.setBackground(Color.black);

        // 버튼 인스턴스화
        for (int i = 0; i < buttons.length; i++) {
            buttons[i] = new JButton("click" + (i + 1));
        }
    }

    private void setInitLayout() {
        add(panel1, BorderLayout.CENTER);
        add(panel2, BorderLayout.SOUTH);

        panel2.setLayout(new FlowLayout(FlowLayout.RIGHT));

        for (int i = 0; i < buttons.length; i++) {
            panel2.add(buttons[i]);
        }

        setVisible(true);
    }

    private void addEventListener() {
        for (int i = 0; i < buttons.length; i++) {
            buttons[i].addActionListener(this);
        }
    }


    @Override
    public void actionPerformed(ActionEvent e) {
        // 다운 캐스팅
        JButton targetButton = (JButton) e.getSource();

        // 버튼별 배경 색 적용
        for (int i = 0; i < buttons.length; i++) {
            if (targetButton == buttons[i]) {
                panel1.setBackground(colors[i]);
            }
        }
    }

    // 코드 실행
    public static void main(String[] args) {
        new ChangeRainbow();

    } // end of main

} // end of class

 

실행

 

320x100
반응형
저작자표시 비영리 변경금지 (새창열림)

'Java > Swing (GUI)' 카테고리의 다른 글

[Java/Swing] KeyListener - 이미지 움직이기  (0) 2023.02.18
[Java/Swing] MouseListener - 컴포넌트 이동시키기  (0) 2023.02.18
[Java/Swing] 메서드 및 함수 모음  (1) 2023.02.17
[Java/Swing] 이벤트 리스너 (Event Listener)  (0) 2023.02.17
[Java/Swing] JLabel 클래스 : 이미지 관련  (0) 2023.02.16
'Java/Swing (GUI)' 카테고리의 다른 글
  • [Java/Swing] KeyListener - 이미지 움직이기
  • [Java/Swing] MouseListener - 컴포넌트 이동시키기
  • [Java/Swing] 메서드 및 함수 모음
  • [Java/Swing] 이벤트 리스너 (Event Listener)
스응
스응
    반응형
    250x250
  • 스응
    이서영의 개발 블로그
    스응
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (385)
      • Java (134)
        • Base (54)
        • Spring Boot (37)
        • JSP (16)
        • Swing (GUI) (20)
        • Design Pattern (7)
      • C# (13)
      • PHP (18)
      • SQL (27)
      • Vue.js (9)
      • Tailwind CSS (4)
      • TypeScript (7)
      • HTML & CSS (27)
      • JavaScript (26)
      • jQuery (10)
      • Android (3)
      • - - - - - - - - - - - - - - (0)
      • Hotkeys (5)
      • CS (30)
      • IT Notes (13)
      • Error Notes (17)
      • Team Project (24)
        • Airlines Web Project (12)
        • University Web Project (6)
        • Strikers 1945 GUI Project (6)
      • My Project (18)
        • Library Web Project (8)
        • Pet Shopping Mall GUI Project (10)
      • etc. (0)
  • 블로그 메뉴

    • Home
    • Write
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    typeScript
    Codeigniter
    vuejs
    SWAGGER
    티스토리챌린지
    jsp
    errorNote
    php
    http
    CSS
    Hotkeys
    오블완
    jQuery
    Swing
    면접
    js
    Wordpress
    Android
    java
    개발일지
    SEO
    cs
    C#
    HTML
    SpringBoot
    zapier
    SQL
    tailwindcss
    git
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
스응
[Java/Swing] ActionListener - 배경 색 변경하기
상단으로

티스토리툴바