예제1) JList
package sist;
import javax.swing.*;
public class Ex10_JList extends JFrame{
public Ex10_JList() {
setTitle("JList 예제");
JPanel jp = new JPanel();
// 1. 컴포넌트를 만들어보자.
String[] job = {"회사원", "공무원", "학생", "주부", "무직"};
JList<String> list = new JList<String>(job);
// 2. 컴포넌트를 컨테이너에 올리자.
jp.add(list);
// 3. 컨테이너는 프레임에 올려야 한다.
add(jp);
setBounds(100,100,300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new Ex10_JList();
}
}
package sist;
import javax.swing.*;
public class Ex11_JLable_JTextField extends JFrame{
public Ex11_JLable_JTextField() {
setTitle("JLable&JTextField 예제");
JPanel jp = new JPanel();
// 1. 컴포넌트를 만들어 보자.
JLabel jl1 = new JLabel("이 름 : ");
JTextField name = new JTextField(15);
JLabel jl2 = new JLabel("학 과 : ");
JTextField major = new JTextField(15);
JLabel jl3 = new JLabel("주 소 : ");
JTextField addr = new JTextField(15);
// 2. 컴포넌트를 컨테이너에 올려야 한다.
jp.add(jl1); jp.add(name);
jp.add(jl2); jp.add(major);
jp.add(jl3); jp.add(addr);
// 3. 컨테이너는 프레임에 올려야 한다.
add(jp);
setBounds(100,100,250,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new Ex11_JLable_JTextField();
}
}
예제3) JTable
package sist;
import javax.swing.*;
public class Ex12_JTable extends JFrame {
public Ex12_JTable() {
String[] header = {"학생이름","국어점수","영어점수","수학점수","JAVA점수"};
String[][] contents = {
{"홍길동","94","88","90","90"},
{"이순신","90","55","77","99"},
{"유관순","77","76","99","67"},
{"김유신","66","98","99","98"},
{"김연아","54","85","96","78"},
{"강감찬","87","34","78","98"},
{"세종대왕","100","100","100","89"},
{"백종원","67","66","78","78"},
{"유재석","87","87","87","89"},
{"강호동","90","76","67","99"},
};
// JTable 컴포넌트는 컨테이너에 올리지 않고 바로 JFrame에 올려주면 된다.
JTable table = new JTable(contents, header);
// 1-1. 스크롤 기능을 추가해 보자.
JScrollPane jsp = new JScrollPane
(table, //스크롤바가 보여질 컴포넌트
//수직 스크롤바 설치 여부
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
//수평 스크롤바 설치 여부
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
// 2. JTable은 바로 프레임에 올려주면 된다.
// Table이 아닌 스크롤바가 포함된 Pane을 올려주어야 한다.
add(jsp);
setBounds(100,100,250,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new Ex12_JTable();
}
}
예제4) JTabbedPane
package sist;
import java.awt.Color;
import javax.swing.*;
public class Ex13_JTabbedPane extends JFrame{
public Ex13_JTabbedPane() {
// 1. 탭의 갯수만큼 컨테이너가 만들어져야한다.
JTabbedPane tab = new JTabbedPane();
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JPanel jp3 = new JPanel();
// 1-1. 컨테이너마다 배경색을 다르게 지정해보자.
jp1.setBackground(Color.ORANGE);
jp2.setBackground(Color.GRAY);
jp3.setBackground(Color.PINK);
// 2-1-1. 첫번째 탭에 올라갈 컴포넌트를 만들어 보자.
JButton jb1 = new JButton("버튼1");
JButton jb2 = new JButton("버튼2");
JButton jb3 = new JButton("버튼3");
// 2-1-2. 첫번째 탭에 올려질 컴포넌트를 컨테이너(jp1)에 올려야 한다.
jp1.add(jb1); jp1.add(jb2); jp1.add(jb3);
// 2-2-1. 두번째 탭에 올라갈 컴포넌트를 만들어 보자.
JCheckBox jcb1 = new JCheckBox("여행");
JCheckBox jcb2 = new JCheckBox("운동");
JCheckBox jcb3 = new JCheckBox("게임");
JCheckBox jcb4 = new JCheckBox("잠자기");
// 2-2-2. 두번째 탭에 올려질 컴포넌트를 컨테이너(jp2)에 올려야 한다.
jp2.add(jcb1); jp2.add(jcb2); jp2.add(jcb3); jp2.add(jcb4);
// 2-3-1. 세번째 탭에 올려질 컴포넌트를 만들어 보자.
JRadioButton jrb1 = new JRadioButton("여행");
JRadioButton jrb2 = new JRadioButton("잠자기");
JRadioButton jrb3 = new JRadioButton("운동");
JRadioButton jrb4 = new JRadioButton("게임");
ButtonGroup bg = new ButtonGroup();
bg.add(jrb1); bg.add(jrb2); bg.add(jrb3); bg.add(jrb4);
// 2-3-2. 세번째 탭에 올려질 컴포넌트를 컨테이너(jp3)에 올려야 한다.
jp3.add(jrb1); jp3.add(jrb2); jp3.add(jrb3); jp3.add(jrb4);
// 3. 각각의 컨테이너들을 탭에 올려준다
tab.add("버튼 탭", jp1);
tab.add("체크박스 탭", jp2);
tab.add("라디오버튼 탭", jp3);
// 4. 탭을 프레임에 올려준다.
add(tab);
setBounds(200,200,300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new Ex13_JTabbedPane();
}
}
예제5) JMenu
package sist;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class Ex14_JMenu extends JFrame{
public Ex14_JMenu() {
setTitle("메뉴");
JMenuBar bar = new JMenuBar();
// 1. 메뉴를 만들어 보자.
JMenu jMenu1 = new JMenu("파일");
JMenu jMenu2 = new JMenu("글자");
JMenu jMenu3 = new JMenu("도움말");
JMenu jMenu4 = new JMenu("글자체");
JMenu jMenu5 = new JMenu("바탕색");
// 2. 메뉴아이템을 만들어 보자.
// 2-1. "파일"이라는 메뉴에 들어갈 메뉴 아이템을 만들어 보자.
JMenuItem jmi1 = new JMenuItem("새파일");
JMenuItem jmi2 = new JMenuItem("열 기");
JMenuItem jmi3 = new JMenuItem("저 장");
JMenuItem jmi4 = new JMenuItem("종 료");
// 2-2-1. "글자 -> 글자체"라는 메뉴에 들어갈 메뉴아이템을 만들어 보자.
JMenuItem jmi5 = new JMenuItem("굴림, 기본, 10");
JMenuItem jmi6 = new JMenuItem("궁서, 굵게, 20");
JMenuItem jmi7 = new JMenuItem("돋움, 기울기, 30");
// 2-2-2. "글자 -> 바탕색"이라는 메뉴에 들어갈 메뉴아이템을 만들어보자.
JMenuItem jmi8 = new JMenuItem("노란색");
JMenuItem jmi9 = new JMenuItem("회색");
JMenuItem jmi10 = new JMenuItem("초록색");
// 2-3. "도움말"이라는 메뉴에 들어갈 메뉴 아이템을 만들어 보자.
JMenuItem jmi11 = new JMenuItem("도움말");
JMenuItem jmi12 = new JMenuItem("메모장 정보");
// 3. 메뉴아이템(JMenuItem)을 메뉴(JMenu)에 올려주어야 한다.
// 3-1. "파일" 메뉴에 들어갈 메뉴아이템을 올리자.
jMenu1.add(jmi1); jMenu1.add(jmi2); jMenu1.add(jmi3);
jMenu1.addSeparator();
jMenu1.add(jmi4);
// 3-2. "글자" 메뉴에 "글자체"를 올려야한다.
jMenu4.add(jmi5); jMenu4.add(jmi6); jMenu4.add(jmi7);
jMenu2.add(jMenu4);
jMenu2.addSeparator();
jMenu5.add(jmi8); jMenu5.add(jmi9); jMenu5.add(jmi10);
jMenu2.add(jMenu5);
// 3-3. "도움말" 메뉴에 메뉴아이템을 올려야 한다.
jMenu3.add(jmi11);
jMenu3.addSeparator();
jMenu3.add(jmi12);
// 4. 메뉴를 메뉴바에 올려주어야 한다.
bar.add(jMenu1); bar.add(jMenu2); bar.add(jMenu3);
// 5. 메뉴바를 프레임에 올려야한다.
setJMenuBar(bar);
setBounds(200,200,300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new Ex14_JMenu();
}
}
예제6) JScrollPane
package sist;
import javax.swing.*;
public class Ex15_ETC extends JFrame{
public Ex15_ETC() {
setTitle("기타예제");
JPanel jp = new JPanel();
// 1. 컴포넌트를 만들어 보자.
JLabel jl1 = new JLabel("아이디 : ");
JTextField id = new JTextField(10);
JLabel jl2 = new JLabel("비밀번호 : ");
JPasswordField pwd = new JPasswordField(10);
JLabel jl3 = new JLabel("하고 싶은 말 : ");
JTextArea jta = new JTextArea(5, 30);
JScrollPane jsp = new JScrollPane(
jta,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
// TextArea 컴포넌트에서 자동 줄바꿈 기능 제공 메서드
jta.setLineWrap(true);
// 2. 컴포넌트를 컨테이너에 올리기
jp.add(jl1); jp.add(id);
jp.add(jl2); jp.add(pwd);
jp.add(jl3); jp.add(jsp); // ScrollPane이 적용된 컴포넌트는 Pane을 올린다.
// 3. 컨테이너를 프레임에 올리기
add(jp);
setBounds(100,100,250,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new Ex15_ETC();
}
}
'Back > JAVA' 카테고리의 다른 글
Java GUI(AWT, Swing) - Event (0) | 2021.03.22 |
---|---|
Java GUI(AWT, Swing) - Layout (0) | 2021.03.22 |
Java GUI(AWT, Swing) - JFrame, JButton, JCheckBox, JRadioButton, JToggleButton (0) | 2021.03.18 |
시스템과 파일 입출력(Java.io) - Input, Output, Stream, Reader, Writer, File (0) | 2021.03.18 |
[심화예제]HashMap, 예외처리, JOptionPane을 사용하여 상품정보 반환하기 (0) | 2021.03.17 |