728x90
반응형
1. 툴바 컴포넌트
툴바는 메뉴바 아래에 위치하고 주로 버튼들이 배치되는 컨테이너이다. 메뉴보다는 빠르게 원하는 기능을 마우스로 선택할 수 있기 때문에 사용자들은 메뉴보다는 툴바를 더 선호한다. Swing은 툴바 생성을 위해서 다음과 같은 컴포넌트를 제공하고 있다.
NO | 컴포넌트 | 설명 |
1 | JToolBar | 툴바 생성을 위한 컴포넌트 |
2 | JToolBar.Separator | 버튼들을 그룹 짓기 위해 공백을 제공하는 컴포넌트 |
◎ 툴바 버튼을 클릭시 어떤 버튼이 클릭되었는지 메시지로 알려주는 예제
import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JOptionPane; import javax.swing.JToolBar; import javax.swing.SwingUtilities; import javax.swing.border.SoftBevelBorder; public class JToolBarExample extends JFrame { private JMenuBar jMenuBar; private JToolBar jToolBar; private JButton btnNew, btnSave, btnCopy, btnPaste; // 메인 윈도우 설정 public JToolBarExample() { this.setTitle("JFrame"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setJMenuBar(getJMenuBar()); // JMenuBar를 JFrame의 북쪽에 배치 this.getContentPane().add(getJToolBar(), BorderLayout.NORTH); this.setSize(300, 200); } // JMenuBar 생성 public JMenuBar getJMenuBar() { if(jMenuBar == null) { jMenuBar = new JMenuBar(); jMenuBar.add(new JMenu("파일")); jMenuBar.add(new JMenu("도움말")); } return jMenuBar; } // JToolBar 생성 public JToolBar getJToolBar() { if(jToolBar == null) { jToolBar = new JToolBar(); jToolBar.add(getBtnNew()); jToolBar.add(getBtnSave()); jToolBar.addSeparator(); jToolBar.add(getBtnCopy()); jToolBar.add(getBtnPaste()); } return jToolBar; } // JToolBar의 New 버튼 생성 public JButton getBtnNew() { if(btnNew == null) { btnNew = new JButton(); btnNew.setIcon(new ImageIcon(getClass().getResource("new.gif")));; btnNew.setBorder(new SoftBevelBorder(SoftBevelBorder.RAISED)); btnNew.setToolTipText("새로만들기"); btnNew.addActionListener(actionListener); } return btnNew; } // JToolBar의 Save 버튼 생성 public JButton getBtnSave() { if(btnSave == null) { btnSave = new JButton(); btnSave.setIcon(new ImageIcon(getClass().getResource("save.gif")));; btnSave.setBorder(new SoftBevelBorder(SoftBevelBorder.RAISED)); btnSave.setToolTipText("저장"); btnSave.addActionListener(actionListener); } return btnSave; } // JToolBar의 Copy 버튼 생성 public JButton getBtnCopy() { if(btnCopy == null) { btnCopy = new JButton(); btnCopy.setIcon(new ImageIcon(getClass().getResource("copy.gif")));; btnCopy.setBorder(new SoftBevelBorder(SoftBevelBorder.RAISED)); btnCopy.setToolTipText("복사"); btnCopy.addActionListener(actionListener); } return btnCopy; } // JToolBar의 Paste 버튼 생성 public JButton getBtnPaste() { if(btnPaste == null) { btnPaste = new JButton(); btnPaste.setIcon(new ImageIcon(getClass().getResource("paste.gif")));; btnPaste.setBorder(new SoftBevelBorder(SoftBevelBorder.RAISED)); btnPaste.setToolTipText("붙여넣기"); btnPaste.addActionListener(actionListener); } return btnPaste; } // JToolBar의 버튼 이벤트를 처리 private ActionListener actionListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if(e.getSource() == btnNew) { JOptionPane.showMessageDialog( JToolBarExample.this, "[새로만들기]를 클릭"); } else if(e.getSource() == btnSave) { JOptionPane.showMessageDialog( JToolBarExample.this, "[저장]를 클릭"); } else if(e.getSource() == btnCopy) { JOptionPane.showMessageDialog( JToolBarExample.this, "[복사]를 클릭"); } else if(e.getSource() == btnPaste) { JOptionPane.showMessageDialog( JToolBarExample.this, "[붙여넣기]를 클릭"); } } }; public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { JToolBarExample jFram = new JToolBarExample(); jFram.setVisible(true); } }); } }
JToolBar을 이용해 툴바의 위치를 생성할 수 있는 ToolBar를 구현해보았습니다.
버튼을 이용해서 ToolBar의 위치에다 넣으니 좀 더 깔끔하게 정리가 되네요!!
더 많은 기능들에 대해서 배워볼게요~!!
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~

728x90
반응형
'BackEnd > Java' 카테고리의 다른 글
[java]이것이 자바다 부록 Java UI 12-1 (Swing을 이용한 표준화된 다이얼로그) (1) | 2023.02.21 |
---|---|
[java]이것이 자바다 부록 Java UI 12 (Swing을 이용한 다이얼로그) (0) | 2023.02.21 |
[java]이것이 자바다 부록 Java UI 10 (Swing을 이용한 메뉴 컴포넌트) (0) | 2023.02.20 |
[java]이것이 자바다 부록 Java UI 9 (Swing을 이용한 트리 컴포넌트) (0) | 2023.02.19 |
[java]이것이 자바다 부록 Java UI 8-1 (Swing을 이용한 테이블 컴포넌트 2) (0) | 2023.02.18 |