일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 베가
- 라데온
- 라데온 나비
- 젠2
- navi
- 라이젠
- 라이젠 오버클럭
- Ryzen
- radeon vega
- vega
- Rx5000
- Zen2
- 나비
- 라데온 신제품
- AMD
- Rx5700
- vega 7
- Radeon
- ryzen zen2
- 암드 신제품
- 암드 라이젠 오버클럭
- ryzen gen2
- 라이젠 오버
- 암드
- 라이젠 젠2 오버
- 젠2 오버클럭
- 라데온 베가
- 라이젠 젠2
- Today
- Total
SW
JAVA GUI 기초 다지기 본문
JAVA Gui 기본 인터페이스 작성절차
[공부하려고 손으로 쓴거니.. 퀄리티는 신경쓰지말자...]
- 기초 컴포넌트들
import javax.swing.JFrame;
public class test {
public static void main(String[] args) {
JFrame f = new JFrame(); JFrame을 생성한다.
f.setTitle("JFrame Test"); 윈도우창의 이름을 넣어준다.
f.setSize(400,400); 윈도우 창의 크기를 정한다.
f.setDefaultCloseOperation(3); 창을 닫기 클릭시 프로그램 종료
f.setVisible(true); 창을 보이려면 true 숨기려면 false
}
}
import javax.swing.JFrame;
public class test extends JFrame{
test(){
setTitle("JFrame Test");
setSize(400,400);
setDefaultCloseOperation(3);
setVisible(true);
}
public static void main(String[] args) {
test ts = new test();
}
}
JFrame의 기본적인 절차이다.
이제 버튼을 생성 할 것인데 우선 패널을 넣어주고, 그 이후 패널의 레이아웃을 정해줘야 한다.
예를 들어 9개의 버튼을 만들고 레이아웃을 정해서 어떤 식으로 보여줄 지 정할 것이다.
본 글쓴이는 9개의 버튼을 FlowLayout 과 GridLayout으로 표현 할 것이다.
- FlowLayout
그 이후 패널을 JFrame 안에 넣어준 이후 JButton을 JPanel 안에 추가해준다.
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class test extends JFrame{
JPanel p = new JPanel();
JButton button = new JButton("버튼");
JButton button1 = new JButton("버튼1");
JButton button2 = new JButton("버튼2");
JButton button3 = new JButton("버튼3");
JButton button4 = new JButton("버튼4");
JButton button5 = new JButton("버튼5");
JButton button6 = new JButton("버튼6");
JButton button7 = new JButton("버튼7");
JButton button8 = new JButton("버튼8");
test(){
setTitle("JFrame Test");
setSize(400,400);
setDefaultCloseOperation(3);
p.add(button); JPanel 안에 JButton을 추가한다.
p.add(button1);
p.add(button2);
p.add(button3);
p.add(button4);
p.add(button5);
p.add(button6);
p.add(button7);
p.add(button8);
p.setLayout(new FlowLayout());
add(p); JPanel을 JFrame안에 추가한다.
setVisible(true);
}
public static void main(String[] args) {
test ts = new test();
}
}
- GridLayout
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class test extends JFrame{
JPanel panel;
JButton[] button;
test(){
setTitle("GridLayout");
setSize(400,400);
setDefaultCloseOperation(3);
JButton[] button = new JButton[9]; JButton을 Array타입으로 9개 생성
panel = new JPanel();
panel.setLayout(new GridLayout(3,3)); 패널을 GridLayout형태로 3x3 으로 만든다.
for(int i = 0; i < button.length; i++) { 반복문을 이용하여 버튼 배열의 길이만큼 버튼을 패널안에 추가 해준다.
button[i] = new JButton();
panel.add(button[i]);
}
add(panel);
setVisible(true);
}
public static void main(String[] args) {
test ts = new test();
}
}
- BorderLayout
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class test extends JFrame{
JPanel p = new JPanel();
JButton button = new JButton("버튼");
JButton button1 = new JButton("버튼1");
JButton button2 = new JButton("버튼2");
JButton button3 = new JButton("버튼3");
JButton button4 = new JButton("버튼4");
test(){
setTitle("JFrame Test");
setSize(400,400);
setDefaultCloseOperation(3);
p.setLayout(new BorderLayout());
p.add(button, "North");
p.add(button1, "West");
p.add(button2, "Center");
p.add(button3, "East");
p.add(button4, "South");
add(p);
setVisible(true);
}
public static void main(String[] args) {
test ts = new test();
}
}
이런식으로 나눌 수 있다.
---------------------------------------------------------------------
오늘 했던 내용을 종합해서 예제를 만들어보자. 예제는 어서와 Java는 처음이지? 에서 가져왔다.
온도 변환기를 작성해보자 섭씨에서 화씨로 바꿀 수 있는 녀석을 그래픽만 구현화를 해보자
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class test {
public static void main(String[] args) {
JFrame f = new JFrame();
JPanel panel = new JPanel();
f.setTitle("온도 변환");
f.setSize(300,150);
f.setDefaultCloseOperation(3);
JLabel label = new JLabel("화씨 온도");
JLabel label1 = new JLabel("섭씨 온도");
JTextField field = new JTextField(15);
JTextField field1 = new JTextField(15);
JButton button = new JButton("Change");
panel.add(label);
panel.add(field);
panel.add(label1);
panel.add(field1);
panel.add(button);
f.add(panel);
f.setVisible(true);
}
}
책에 있는 예제를 그대로 사용했고 소스코드도 동일하다.
항상 하듯 extends 로 JFrame 을 상속받아 별도 클래스를 작성하여 각종 초기화 문장들의 위치를 조정하여 해결해 보자.
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class test extends JFrame {
JPanel panel = new JPanel();
JButton button = new JButton("변환");
JLabel label = new JLabel("화씨 온도");
JLabel label1 = new JLabel("섭씨 온도");
JTextField field = new JTextField(15);
JTextField field1 = new JTextField(15);
public test(){
setTitle("온도 변환");
setSize(300,150);
setDefaultCloseOperation(3);
panel.add(label);
panel.add(field);
panel.add(label1);
panel.add(field1);
panel.add(button);
add(panel);
setVisible(true);
}
public static void main(String[] args) {
test ts = new test();
}
}
이런식으로 초기화를 해준 후에 사용하면 동일한 결과 값이 나온다.
두 번째 예제는 피자 주문 화면 작성하기이다. 본 예제 또한 어서와 JAVA는 처음이지? 책을 인용했다.
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class test extends JFrame {
JPanel panel = new JPanel();
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JButton button = new JButton("콤보피자");
JButton button1 = new JButton("포테이토피자");
JButton button2 = new JButton("불고기피자");
JLabel label = new JLabel("피자나라에 오신걸 환영합니다.");
JLabel label1 = new JLabel("개수");
JTextField field = new JTextField(10);
JTextField field1 = new JTextField(10);
public test(){
setTitle("온도 변환");
setSize(600,150);
setDefaultCloseOperation(3);
panel1.add(label);
panel2.add(button);
panel2.add(button1);
panel2.add(button2);
panel2.add(label1);
panel2.add(field);
panel.add(panel1);
panel.add(panel2);
add(panel);
setVisible(true);
}
public static void main(String[] args) {
test ts = new test();
}
}
소스코드는 이러하다.
이런 식의 결과 값이 나온다.
본 교과에서는 패널의 배경색을 바꾸는 문제를 내준다.
한번 해보도록 하자. 패널의 배경색을 변경할 경우에 panel.setBackground(Color.BLUE); 이런식으로 색을 변경하면 된다.
본 글쓴이는 맥을 사용하고 있는데... 정말 배경색을 아무렇게나 바꾸면 극혐 할 정도로 못봐줄 색이 나온다... 주의하자..
요 딴 식 으 로 나 온 다 .
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] String Lib (0) | 2019.06.07 |
---|---|
JAVA GUI 기초 다지기 2 (2) | 2018.10.23 |