프로그래밍 언어/JAVA

툴바

· 코딩마이데이

JToolBar

JToolBar는 툴바를 구현한 컴포넌트입니다. 툴바는 같은 바(bar) 모양의 컨테이너로, 다양한 스윙 컴포넌트를 담아 아이콘 형태의 메뉴를 제공하기 위해 사용됩니다.

JToolBar로 구현된 툴바

 

 

툴바는 BorderLayout 배치 관리자를 가진 컨테이너에만 부착되며, 동(EAST), 서(WEST), 남(SOUTH), 북(NORTH)의 아무 곳이나 부착 가능합니다. 사용자는 실행 중에 보이는 툴바의 핸들을 마우스로 잡아 드래깅하면, 4개의 영역 중 아무 곳이나 옮길 수 있습니다. 뿐만 아니라 툴바의 핸들을 드래깅하여 4개의 영역 중 어디에도 붙이지 않고 독립적으로 떠다니게(Roatable) 할 수도 있습니다.

 

툴바 만들기

툴바를 만드는 과정은 메뉴를 만드는 과정과 비슷하며 다음과 같이 간단합니다.

 

1. JToolBar 객체 생성

JToolBar의 생성자에 툴바 이름을 전달하여 툴바를 만듭니다.

JToolBar toolbar = new JToolBar("Kitae Menu");

 

2. 메뉴로 사용할 컴포넌트를 툴바에 삽입

모든 스윙 컴포넌트가 JToolBar에 삽입 가능하며, 컴포넌트 사이에 분리 공간(separator)을 삽입할 수 있습니다.

toolBar.add(new JButton("New")); // 버튼 삽입
toolBar.addSeparator(); // 분리 공간 삽입
toolBar.add(new JTextField("text-field")); // 텍스트필드 삽입

 

3. 툴바를 컨테이너에 삽입

툴바는 BorderLayout 배치관리자가 설정된 컨테이너에만 부착됩니다. 

container.add(toolBar, BorderLayout.NORTH); // 컨테이너의 NORTH에 툴바 부착

 

툴바 이동 제어

툴바는 기본적으로 사용자가 핸들드래깅하여 다른 영역으로 이동할 수 있지만, 다음과 같이 JToolBar.setFloatable(false)를 호출하면 툴바의 핸들이 보이지 않게 되며 사용자는 툴바를 다른 곳으로 이동할 수 없습니다.

toolBar.setFloatable(false); // 툴바 이동 불가능, true이면 이동 가능

 

툴바 만들기

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

public class ToolBarEx extends JFrame {
    private Container contentPane;

    public ToolBarEx() {
        setTitle("툴바 만들기 예제");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        contentPane = getContentPane();
        createToolBar();
        setSize(400, 200);
        setVisible(true);
    }

    // 툴바를 생성하여 컨텐츠팬에 부착한다.
    private void createToolBar() {
        // 툴바 생성
        JToolBar toolBar = new JToolBar("Kitae Menu");
        toolBar.setBackground(Color.LIGHT_GRAY);
        
        // 툴바에 메뉴로 사용할 컴포넌트를 삽입한다.
        toolBar.add(new JButton("New"));
        toolBar.add(new JButton(new ImageIcon("images/open.jpg")));
        toolBar.addSeparator();
        toolBar.add(new JButton(new ImageIcon("images/save.jpg")));
        toolBar.add(new JLabel("search"));
        toolBar.add(new JTextField("text field"));

        JComboBox<String> combo = new JComboBox<String>();
        combo.addItem("Java");
        combo.addItem("C#");
        combo.addItem("C");
        combo.addItem("C++");
        toolBar.add(combo);

        // 툴바를 컨탠트팬의 NORTH에 부착한다.
        contentPane.add(toolBar, BorderLayout.NORTH);
    }

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

 

[실행 결과]

초기 컨탠트팬의 NORTH에 부착된 툴바
핸들을 드래그하여 SOUTH로 이동
핸들을 드래그하여 임의의 위치로 이동

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

다이얼로그 만들기  (0) 2025.09.03
툴팁  (0) 2025.09.02
메뉴 만들기  (2) 2025.08.28
wait(), notify(), notifyAll()을 이용한 스레드 동기화  (4) 2025.08.25
스레드 동기화(Thread Synchronization)  (3) 2025.08.22