프로그래밍 언어/JAVA

탭팬

· 코딩마이데이

JTabbedPane

JTabbedPane은 여러 개의 패널을 겹치게 하여 출력 공간을 공유하는 탭팬을 구현합니다. 탭팬에 부착된 각 패널을 탭(tab)이라 부릅니다.

 

탭팬 만들기

탭팹을 만드는 과정은 단순합니다.

1. JTabbedPane 객체 생성

JTabbedPane pane = new JTabbedPane); // 탭 위치는 디폴트로 JTabbedPane.TOP

 

탭은 디폴트로 탭팬의 위쪽에 위치합니다. 텝 위치를 왼쪽에 부착하려면 다음과 같이합니다.

JTabbedPane pane = new JTabbedPane(JTabbedPane.LEFT); // 탭 위치를 왼쪽으로

 

2. 탭 만들어 붙이기

탭팬에 탭을 붙이는 작업은 JTabbedPane의 addTab() 메서드를 이용합니다. addTab()의 첫 번째 인자는 탭의 타이틀이며, 두 번째 인자는 탭에 출력될 컴포넌트입니다. 다음은 타이틀이 "tab1"이고 img1.jpg 이미지를 가진 레이블 컴포넌트로 가진 탭을 만들어 탬팬에 부착하는 코드입니다.

// img1.jpg 이미지 레이블을 가진 tab1
pane.addTab("tab1",  new JLabel(new ImageIcon("images/img1.jpg")));

 

탭에는 기본적으로 컴포넌트 하나만 붙일 수 있습니다. 여러 개의 컴포넌트를 하나의 탭을 담고자 하면, 다음 코드처럼 패널을 여러 컴포넌트를 담으면 됩니다.

class MyPanel extends JPanel {
	..................
	// 여러 컴포넌트를 붙인다.
	..................
}
...................
pane.addTab("tab3", new MyPanel()); // MyPanel 객체를 컴퍼넌트로 가진 tab3

 

탬팬 만들기

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

public class TabbedPaneEx extends JFrame {
    public TabbedPaneEx() {
        setTitle("탭팬 만들기 예제");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container c = getContentPane();
        JTabbedPane pane = createTabbedPane(); // 탭팬을 생성한다.
        c.add(pane, BorderLayout.CENTER); // 탭팬을 컨텐트팬에 부착합니다.
        setSize(250, 250);
        setVisible(true);
    }

    // 탭팬을 생성하고 3개의 탭을 생성하여 부착한다.
    private JTabbedPane createTabbedPane() {
        JTabbedPane pane = new JTabbedPane(); // 탭팬 객체를 생성한다.
        pane.addTab("tab1", new JLabel(new ImageIcon("images/img1.jpg"))); // 첫 번째 탭
        pane.addTab("tab2", new JLabel(new ImageIcon("images/img2.jpg"))); // 두 번째 탭
        pane.addTab("tab3", new MyPanel()); // 세 번째 탭
        return pane;

    }

    // 3번째 탬의 컴포넌트로 사용될 패넣
    class MyPanel extends JPanel {
        public MyPanel() {
            this.setBackground(Color.YELLOW);
        }

        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.setColor(Color.RED);
            g.fillRect(10, 10, 50, 50);
            g.setColor(Color.BLUE);
            g.fillOval(10, 70, 50, 50);
            g.setColor(Color.BLACK);
            g.drawString("tab 3에 들어가는 JPanel 입니다.", 30, 50);
        }
    }

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

 

[실행결과]

'프로그래밍 언어 > JAVA' 카테고리의 다른 글

표현식 사용하기  (0) 2025.10.01
자바 오디오 다루기  (0) 2025.09.21
컬러 다이얼로그  (0) 2025.09.15
파일 다이얼로그  (0) 2025.09.12
팝업 다이얼로그  (1) 2025.09.09