Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java JTabbedPane에서 선택된 탭을 강조 표시하는 방법

JTabbedPaneJComponent 클래스의 하위 클래스로, 여러 개의 패널에 손쉽게 접근할 수 있도록 도와주는 스윙(Swing) 컴포넌트입니다. 각 탭은 하나의 컴포넌트와 연결되어 있으며, 해당 탭이 선택되면 연결된 컴포넌트가 화면에 표시됩니다. 또한 JTabbedPane은 탭이 선택될 때 ChangeListener 인터페이스를 통해 이벤트를 발생시킬 수 있습니다.

UIManager를 이용한 선택 탭 강조 표시

선택된 탭을 특정 색상으로 강조하고 싶다면 UIManager 클래스의 정적 메서드인 put()을 사용하면 됩니다. 아래 예제에서는 "TabbedPane.selected" 키에 원하는 색상을 지정하여 선택된 탭의 배경색을 회색으로 변경합니다.

예제 코드

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class SelectedJTabbedPaneTest extends JFrame implements ActionListener {
    private JTabbedPane tabbedPane;
    int tab = 0;

    public SelectedJTabbedPaneTest() {
        setTitle("SelectedJTabbedPane Test");
        setLayout(new BorderLayout());
        // 선택된 탭의 색상을 회색으로 설정
        UIManager.put("TabbedPane.selected", Color.gray);
        tabbedPane = new JTabbedPane();
        createTab();
        add(tabbedPane, BorderLayout.CENTER);
        setJMenuBar(createMenuBar());
        setSize(375, 250);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);
    }

    public JMenuBar createMenuBar() {
        JMenuBar menuBar = new JMenuBar();
        JMenu menu = new JMenu("JTabbedPane");
        JMenuItem menuItem = new JMenuItem("Create a new tab");
        menuItem.addActionListener(this);
        menu.add(menuItem);
        menuBar.add(menu);
        return menuBar;
    }

    public void actionPerformed(ActionEvent ae) {
        if (ae.getActionCommand().equals("Create a new tab")) {
            createTab();
        }
    }

    public void createTab() {
        tab++;
        tabbedPane.addTab("Tab " + tab, new JLabel("Tab " + tab));
    }

    public static void main(String []args) {
        new SelectedJTabbedPaneTest();
    }
}

코드 설명

  • UIManager.put("TabbedPane.selected", Color.gray): 스윙의 UI 기본 설정값을 변경하여 선택된 탭의 배경색을 회색으로 지정합니다. 이 코드는 반드시 JTabbedPane 객체가 생성되기 전에 호출해야 합니다.
  • createTab(): 새로운 탭을 생성하고 번호를 붙여 추가하는 메서드입니다.
  • 메뉴바: 'Create a new tab' 메뉴 항목을 클릭하면 ActionListener를 통해 새 탭이 동적으로 추가됩니다.

실행 결과

프로그램을 실행하면 현재 선택된 탭이 회색으로 강조 표시되는 것을 확인할 수 있습니다. 메뉴에서 새 탭을 추가해도 선택된 탭은 동일한 방식으로 강조됩니다.