728x90
반응형
Ex01. JButton
package SwingEx;
import java.awt.*;
import javax.swing.*; //swing에서 제공하는 java프레임
public class MyFrame2 extends JFrame{
public MyFrame2 (){
Container ct = getContentPane();
JButton jb = new JButton("첫번째 버튼");
ct.add(jb);
this.setSize(300, 400); //크기설정
this.setDefaultCloseOperation(EXIT_ON_CLOSE); //닫기 버튼 기능 : J프레임에서 제공
this.setVisible(true); //창화면 보이기
}
public static void main(String[] args) {
new MyFrame2();
}
}
닫기 기능이 가능한 가로 300x 세로400 크기의 창을 표시.
버튼을 생성.
Ex02. setBackground
package SwingEx;
import java.awt.*;
import javax.swing.*;
public class MyFrame2 extends JFrame{
public MyFrame2 (){
Container ct = getContentPane();
ct.setBackground(Color.orange);
ct.setLayout(new FlowLayout());
JButton jb1 = new JButton("첫번째 버튼");
JButton jb2 = new JButton("두번째 버튼");
JButton jb3 = new JButton("세번째 버튼");
ct.add(jb1);
ct.add(jb2);
ct.add(jb3);
this.setSize(600, 400);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new MyFrame2();
}
}
닫기 기능이 가능한 가로 600x 세로400 크기의 창을 표시.
FlowLayout에 창의 배경에 orange색을 설정하고 버튼 3개 생성.
FlowLayout은 화면의 가운데부터 배치되는 것으로 AWT에서 지원하는 기능이다.
위 화면을 줄이면 위와 같이 버튼이 정렬되는 것을 확인 할 수 있다.
Ex03. FlowLayout
package SwingEx;
import java.awt.*;
import javax.swing.*;
public class FlowLayoutTest1 extends JFrame{
public FlowLayoutTest1 (){
Container ct = getContentPane();
ct.setLayout(new FlowLayout());
for(int i=1; i<15; i++) {
ct.add(new JButton("버튼" + i));
}
this.setSize(500, 300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new FlowLayoutTest1();
}
}
닫기 기능이 가능한 가로 500x 세로400 크기의 창을 표시.
FlowLayout에 for문을 사용해 버튼 14개 생성.
Ex03_02. FlowLayout 간격
FlowLayout의 형태는 new FlowLayout(FlowLayout.정렬방향,가로간격,수직간격) 이다. 위에서 ct.setLayout(new FlowLayout()); 부분을 아래와 같이 바꾸어 주었다.
ct.setLayout(new FlowLayout(FlowLayout.RIGHT,10,15));
가로로 정렬 된 것을 볼 수 있다. 이때 버튼 사이의 가로간격은 10, 위아래 간격은 15이다.
Ex04. BorderLayout
package SwingEx;
import java.awt.*;
import javax.swing.*;
public class BorderTest extends JFrame{
public BorderTest (){
Container ct = getContentPane();
ct.setLayout(new BorderLayout());
ct.add(new JButton("오른쪽 버튼"), BorderLayout.EAST);
ct.add(new JButton("왼쪽 버튼"), BorderLayout.WEST);
ct.add(new JButton("위쪽 버튼"), BorderLayout.NORTH);
ct.add(new JButton("아래쪽 버튼"), BorderLayout.SOUTH);
ct.add(new JButton("가운데 버튼"), BorderLayout.CENTER);
this.setSize(500, 400);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new BorderTest();
}
}
닫기 기능이 가능한 가로 500x 세로400 크기의 창을 표시.
BorderLayout을 사용하여 화면을 구분. 각각의 위치에 버튼을 생성한다.
저 버튼들 사이에 간격을 주고 싶을때는?
Ex04_02. BorderLayout 간격
ct.setLayout(new BorderLayout(10, 10));
가로, 세로의 간격을 위와 같이 입력해준다.
Ex05. GridLayout, JLabel, JTextField
package SwingEx;
import java.awt.*;
import javax.swing.*;
public class GridLayoutTest extends JFrame{
public GridLayoutTest (){
Container ct = getContentPane();
ct.setLayout(new GridLayout(4, 2));
ct.add(new JLabel("이름"));
ct.add(new JTextField());
ct.add(new JLabel("학번"));
ct.add(new JTextField());
ct.add(new JLabel("학과"));
ct.add(new JTextField());
ct.add(new JLabel("과목"));
ct.add(new JTextField());
this.setSize(300, 200);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new GridLayoutTest();
}
}
닫기 기능이 가능한 가로 300x 세로200 크기의 창을 표시.
GridLayout으로 화면을 구분.
Ex05_02. GridLayout 간격
ct.setLayout(new GridLayout(4, 2, 0, 10));
728x90
반응형
'JAVA > 개념정리' 카테고리의 다른 글
[JAVA] Swing : MouseEvent (0) | 2022.10.13 |
---|---|
[JAVA] Swing : 외부선언, 내부선언 (0) | 2022.10.13 |
[JAVA] AWT와 Swing (0) | 2022.10.13 |
[JAVA] 추상(abstract) 클래스와 오버라이딩 (0) | 2022.10.13 |
[JAVA] 추상화 abstract (0) | 2022.10.13 |
댓글