본문 바로가기

728x90
반응형

개발 기록

[java]이것이 자바다 부록 Java UI 11 (Swing을 이용한 툴바 컴포넌트) 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.I.. 더보기
[java]이것이 자바다 부록 Java UI 10 (Swing을 이용한 메뉴 컴포넌트) 1. 메뉴 컴포넌트 ▷ 메뉴는 빠질 수 없는 구성 요소, Swing은 메뉴 생성을 위해 컴포넌트를 javax.swing 패키지에서 제공 NO 컴포넌트 설명 1 JMenuBar 메뉴바 컴포넌트 2 JMenu 주 메뉴 및 자식 메뉴 아이템을 갖는 서브 메뉴 컴포넌트 3 JPopupMenu 팝업 메뉴 컴포넌트 4 JMenuItem 메뉴 아이템 컴포넌트 5 JCheckBoxMenuItem JCheckBox로 선택할 수 있는 메뉴 아이템 컴포넌트 6 JRadioButtonMenuItem JRadioButton으로 선택할 수 있는 메뉴 아이템 컴포넌트 7 JSeparator 메뉴를 수직 또는 수평으로 분리시키는 컴포넌트 ◎ 각 컴포넌트의 사용 위치를 그림으로 표시 (1) 메뉴 생성 ▷ 가장 먼저 JMenuBar를 .. 더보기
[java]이것이 자바다 부록 Java UI 9 (Swing을 이용한 트리 컴포넌트) 1. 트리 컴포넌트 ▷ 계층적인 데이터를 표시하는 컴포넌트, Swing은 트리 컴포넌트로 JTree를 제공 ▷ 하나의 루트 노드 아래에 여러 개의 자식 노드를 가지며, 자식 노드는 또 다시 자식 노드를 가질 수 있음 ▷ 동일한 부모 노드를 갖는 노드들을 묶어서 형제 노드라고 부르며, 자식 노드가 없는 마지막 노드는 잎사귀 노드(리프 노드)라고 함 (1) 트리 생성 ▷ 생성자의 매개값으로 루트 노드를 대입해야 하는데, 루트 노드는 DefaultMutableTreeNode로 생성 ▷ 부모 노드, 리프 노드를 생성하는데도 사용 ◎ 기본적인 노드 모양 나타내는 예제 import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JScrol.. 더보기
[java]이것이 자바다 부록 Java UI 8-1 (Swing을 이용한 테이블 컴포넌트 2) (4) 이벤트 처리 ▷ MouseEvent가 발생하므로 MouseListener를 등록해서 이벤트를 처리할 수 있음 ▷ getSelectedColumn(), getSelectedRow() 메소드를 이용해 어떤 컬럼과 행에서 클릭되었는지 알아낼 수 있음 import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swi.. 더보기
[java]이것이 자바다 부록 Java UI 8 (Swing을 이용한 테이블 컴포넌트 1) 1. 테이블 컴포넌트 ▷ 테이블 형식의 데이터를 표시하고 편집할 수 있는 컴포넌트, 다른 컴포넌트에 비해서 다소 복잡한 구조임 이름 컬럼의 데이터는 모두 텍스트, 나이 컬럼의 데이터는 모두 숫자로 구성 ▷ 테이블은 컬럼과 행으로 구성, 컬럼과 행이 만나는 곳이 셀(실제 데이터가 표시되는 곳) ▷ 하나의 컬럼을 구성하는 셀들은 동일한 데이터 타입을 가져야 함 (1) 테이블 생성 ▷ 간단한 JTable 객체 만들기 : 컬럼 이름을 포함하고 있는 1차원 String 배열과 셀의 데이터인 2차원 Object 배열을 생성 ◎ 테이블 생성 예제 import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JScrollPane; import .. 더보기
[java]이것이 자바다 부록 Java UI 7 (Swing을 이용한 리스트 컴포넌트) 1. 리스트 컴포넌트 ▷ 목록 중에서 항목을 선택할 수 있는 컴포넌트 ▷ JList : 목록에서 하나 이상의 항목을 선택, JComboBox : 버튼을 클릭시 목록이 보이고 그 중 하나를 선택 (1) JList ▷ 목록에서 하나 이상의 항목을 선택할 수 있는 컴포넌트 ▷ Vector 객체로 줄 수 있고 기본적으로 JLabel로 구성되어 있기 때문에 텍스트 이외에도 이미지 표현도 가능 ▷ 자동으로 스크롤 바가 생성되지 않으므로 JScrollPane에 추가해서 사용할 수 있음 ◎ JList를 이용한 사진 선택 예제 import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.util.Vector; imp.. 더보기
[java]이것이 자바다 부록 Java UI 6-1 (Swing을 이용한 텍스트 컴포넌트 2) 1. JEditorPane ▷ 다양한 타입의 문서를 보여주거나 편집이 가능한 멀티 라인의 텍스트 컴포넌트 ▷ 단순 텍스트, HTML 타입의 문서를 지원 ▷ HTML 문서를 표시할 경우 setEditable(false)를 호출해 편집할 수 없도록 하고, 사용자가 링크를 클릭할 경우 HyperlinkListener 등록해 HyperlinkEvent 이벤트를 처리할 수 있음 ▷ HyperlinkEvent는 마우스를 링크 위로 가져갔을 경우, 링크 바깥으로 가져갔을 경우, 링크를 클릭했을 경우 모두 발생 ◎ HTML을 삽입하는 예제 import java.awt.BorderLayout; import javax.swing.JEditorPane; import javax.swing.JFrame; import javax.. 더보기
[java]이것이 자바다 부록 Java UI 6 (Swing을 이용한 텍스트 컴포넌트) 1. 텍스트 컴포넌트 ▷ 텍스트를 나타내거나 편집할 수 있는 컴포넌트를 말함 ▷ JLabel, JTextField, JPasswordField, JTextArea, JEditorPane, JTextPane 등이 있음 ▷ JLabel만 텍스트를 편집할 수 없고, 나머지는 텍스트를 편집할 수 있음 ▷ 편집 가능한 텍스트 컴포넌트는 모두 JTextComponent를 상속받아 각 컴포넌트의 특징에 맞게 설계됨 ▷ 단일 라인 텍스트 편집 : TextField, JPasswordField, 멀티라인 편집 : JTextArea, JEditorPane, JTextPane (1) JLabel ▷ JLabel은 편집할 수 없는 한 줄의 간단한 텍스트와 정적인 이미지를 보여주는 컴포넌트 ▷ 텍스트와 이미지의 배치는 정렬과 .. 더보기

728x90
반응형