예제 8-1 : 300x300 크기의 스윙 프레임 만들기
package chap08;
//예제 8-1
import javax.swing.JFrame;
public class MyFrame extends JFrame{
public MyFrame(){
setTitle("300x300 프레임 만들기");
setSize(300,300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
MyFrame frame=new MyFrame();
}
}
예제 8-2 : 3개의 버튼 컴포넌트를 가진 스윙 프레임 만들기
문제:다음 그림과 같이 콘텐트팬의 배경색을 오렌지색으로 하고 , OK, Cancel, Ignore 버튼을 부착한 스윙 프로그램을 작성하라.
package chap08;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
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();
}
}
예제 8-3 : FlowLayout 배치관리자 활용
문제: FlowLayout 배치관리자를 사용하여 다음 그림과 같이 5개의 버튼을 배치하라.
package chap08;
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.text.AbstractDocument.Content;
public class FlowLayoutEx extends JFrame {
public FlowLayoutEx() {
setTitle("FlowLayout 예제");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPane=getContentPane();
contentPane.setLayout(new FlowLayout(FlowLayout.LEFT,30,40));//수평 간격 30, 수직 간격40
contentPane.add(new JButton("add"));
contentPane.add(new JButton("sub"));
contentPane.add(new JButton("mul"));
contentPane.add(new JButton("div"));
contentPane.add(new JButton("Calculate"));
setSize(500,300);
setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new FlowLayoutEx();
}
}
예제 8-4 : BorderLayout 배치관리자 활용
package chap08;
import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;
public class BorderLayoutEx extends JFrame{
public BorderLayoutEx() {
setTitle("BorderLayout 예제");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPane=getContentPane();
contentPane.setLayout(new BorderLayout(30,20));
contentPane.add(new JButton("Calculate"),BorderLayout.CENTER);
contentPane.add(new JButton("div"),BorderLayout.WEST);
contentPane.add(new JButton("mul"),BorderLayout.EAST);
contentPane.add(new JButton("sub"),BorderLayout.SOUTH);
contentPane.add(new JButton("add"),BorderLayout.NORTH);
setSize(500,200);
setVisible(true);
}
public static void main(String[] args) {
new BorderLayoutEx();
}
}
8-5 : GridLayout 배치관리자를 사용하는 예
package chap08;
import java.awt.Container;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class GridLayoutEx extends JFrame{
public GridLayoutEx() {
super("GridLayout 예제 ");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPane=getContentPane();
//1x10의 GridLayout 배치관리자
contentPane.setLayout(new GridLayout(1,10));
for(int i=0;i<10;i++) {
int text=i;
contentPane.add(new JButton(Integer.toString(text)));
}
setSize(400,300);
setVisible(true);
}
public static void main(String[] args) {
new GridLayoutEx();
}
}
예제 8-6 : 배치관리자 없는 컨테이너에 컴포넌트를 절대위치와 절대 크기로 지정
package chap08;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
//컨텐트팬에 배치관리자를 삭제하고 9개의 버튼과 하나의 문자열을 출력하는 프로그램 작성
public class NullContainerEx extends JFrame{
public NullContainerEx() {
setTitle("배치관리자 없이 절대 위치에 배치");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPane=getContentPane();
contentPane.setLayout(null);
JLabel la=new JLabel("Hello, Press Buttons!");
la.setLocation(130,50);
la.setSize(200,20);
contentPane.add(la);//la를 컨텐트팬에 부착
//9개의 버튼 컴포넌트를 생성하고 동일한 크기로 설정
//위치는 서로 겹치게 설정
for(int i=0; i<=9;i++) {
JButton b=new JButton(Integer.toString(i));
b.setLocation(i*15, i*15);
b.setSize(50,20);
contentPane.add(b);
}
setSize(300,200);
setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new NullContainerEx();
}
}
'Language > JAVA' 카테고리의 다른 글
[JAVA] 명품 자바 에센셜 예제 7장 (0) | 2021.12.27 |
---|---|
[JAVA] 명품 자바 에센셜 예제 6장 (0) | 2021.12.26 |
[JAVA] 명품 자바 에센셜 예제 5장 (0) | 2021.12.20 |
[JAVA] 명품 자바 에센셜 예제 4장 (0) | 2021.12.18 |
[JAVA] 명품 자바 에센셜 예제 3장 (0) | 2021.12.17 |