import javax.swing.*;
public class MyFrame extends JFrame {
public MyFrame(){
setTitle("300x300 스윙 프레임 만들기");
setSize(300,300);
setVisible(true);
}
public static void main(String[] args){
MyFrame frame = new MyFrame();
}
}
다음 그림과 같이 컨텐트팬의 배경색을 오렌지색으로 하고, 이곳에 OK, Cancel, Ignore 버튼들을 부착한 스윙 프로그램을 작성하라.
import javax.swing.*;
import java.awt.*;
public class ContentPaneEx extends JFrame {
public ContentPaneEx(){
setTitle("ContentPane과 JFrame");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPane = getContentPane();
contentPane.setBackground(Color.ORANGE);
contentPane.setLayout(new FlowLayout());
contentPane.add(new JButton("OK"));
contentPane.add(new JButton("Cancel"));
contentPane.add(new JButton("Ignore"));
setSize(300,150);
setVisible(true);
}
public static void main(String[] args){
new ContentPaneEx();
}
}
수평 간격이 30, 수직 간격을 40픽셀로 하고 LEFT
로 정렬 배치하는 FlowLayout
배치관리자를 가진 컨텐트팬에 5개의 버튼 컴포넌트를 부착한 스윙 응용프로그램을 작성하라.
import javax.swing.*;
import java.awt.*;
public class FlowLayoutEx extends JFrame {
public FlowLayoutEx(){
setTitle("FlowLayout Sample");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane();
c.setLayout(new FlowLayout(FlowLayout.LEFT,30,40));
c.add(new JButton("add"));
c.add(new JButton("sub"));
c.add(new JButton("mul"));
c.add(new JButton("div"));
c.add(new JButton("calculate"));
setSize(300,200);
setVisible(true);
}
public static void main(String[] args){
new FlowLayoutEx();
}
}
BorderLayout
배치관리자를 사용하여 컨텐트팬에 다음과 같이 5개의 버튼 컴포넌트를 삽입하라.
import javax.swing.*;
import java.awt.*;
public class BorderLayoutEx extends JFrame {
public BorderLayoutEx() {
setTitle("BorderLayout Sample");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane();
c.setLayout(new BorderLayout(30,20));
c.add(new JButton("Calculate"), BorderLayout.CENTER);
c.add(new JButton("add"), BorderLayout.NORTH);
c.add(new JButton("sub"), BorderLayout.SOUTH);
c.add(new JButton("div"), BorderLayout.EAST);
c.add(new JButton("mul"), BorderLayout.WEST);
setSize(300,200);
setVisible(true);
}
public static void main(String[] args) {
new BorderLayoutEx();
}
}
아래 화면과 같이 사용자로부터 입력받는 폼을 스윙 응용프로그램으로 작성하라.
GridLayout
을 사용하여 콘텐트팬을 4x2 그리드로 분할하고 JLabel
컴포넌트와 JTextField
컴포넌트를 부착하면 된다. 두 행 사이의 수직 간격은 5픽셀로 하라.
import javax.swing.*;
import java.awt.*;
public class GridLayoutEx extends JFrame {
public GridLayoutEx() {
setTitle("GridLayout sample");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridLayout grid = new GridLayout(4,2);
grid.setVgap(5);
Container c = getContentPane();
c.setLayout(grid);
c.add(new JLabel("이름"));
c.add(new JTextField(""));
c.add(new JLabel("학번"));
c.add(new JTextField(""));
c.add(new JLabel("학과"));
c.add(new JTextField(""));
c.add(new JLabel("과목"));
c.add(new JTextField(""));
setSize(300,200);
setVisible(true);
}
public static void main(String[] args){
new GridLayoutEx();
}
}
다음 그림과 같이 컨텐트팬에 배치관리자를 삭제하고 9개의 버튼과 하나의 문자열을 출력하는 프로그램을 작성하라.
"Hello. Press Buttons!" 문자열은 JLabel
컴포넌트를 이용하고, 그 위치를 (130,50)에, 크기는 200x20으로 한다. 버튼의 크기는 50x20으로 한다.
import javax.swing.*;
import java.awt.*;
public class NullContainerEx extends JFrame {
public NullContainerEx() {
setTitle("Null Container Sample");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane();
c.setLayout(null);
JLabel la = new JLabel("Hello, Press Buttons!");
la.setLocation(130,50);
la.setSize(200,20);
c.add(la);
for(int i=1; i<=9; i++){
JButton b = new JButton(Integer.toString(i));
b.setLocation(i*15,i*15);
b.setSize(50,20);
c.add(b);
}
setSize(300,200);
setVisible(true);
}
public static void main(String[] args){
new NullContainerEx();
}
}