1. 다음과 같이 “Let’s study Java”라는 문자열을 타이틀로 가지고 프레임의 크기가 400 * 200인 스윙 프로그램을 작성하라.
package chapter8;
import javax.swing.*;
import java.awt.*;
public class FrameSample extends JFrame{
FrameSample(){
setTitle("Let's study Java");
setSize(400,200);
setVisible(true);
}
public static void main(String[] args){
FrameSample fs =new FrameSample();
fs.setDefaultCloseOperation(fs.EXIT_ON_CLOSE);
}
}
실행결과
2. BorderLayout을 사용하여 컴포넌트 사이의 수평 간격이 5픽셀, 수직 간격이 7 픽셀이 되도록 다음과 같은 스윙 응용 프로그램을 작성하라.
package chapter8;
import javax.swing.*;
import java.awt.*;
public class BorderLayoutSample extends JFrame{
BorderLayoutSample(){
setTitle("BorderLayout Practice");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout(5,7));
contentPane.add(new JButton("North"), BorderLayout.NORTH);
contentPane.add(new JButton("West"), BorderLayout.WEST);
contentPane.add(new JButton("Center"), BorderLayout.CENTER);
contentPane.add(new JButton("East"), BorderLayout.EAST);
contentPane.add(new JButton("South"), BorderLayout.SOUTH);
setSize(400,200);
setVisible(true);
}
public static void main(String[] args){
BorderLayoutSample bl = new BorderLayoutSample();
}
}
실행결과
3. 컨텐트팬에 FlowLayout 배치 관리자를 지정하고 그림과 같이 JLabel과 JButton 컴포넌트를 이용하여 산술문을 출력하는 스윙 프로그램을 작성하라.
package chapter8;
import java.awt.*;
import javax.swing.*;
public class FlowLayoutSample extends JFrame {
public FlowLayoutSample() {
setTitle("FlowLayout Practice");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane();
c.setLayout(new FlowLayout());
c.add(new JLabel("100"));
c.add(new JLabel("+"));
c.add(new JLabel("200"));
c.add(new JButton("="));
c.add(new JLabel("300"));
setSize(400,100);
setVisible(true);
}
public static void main(String[] args) {
FlowLayoutSample fl= new FlowLayoutSample();
}
}
실행결과
4. 예제 8-5의 소스코드를 수정하여 각 버튼의 배경색을 다음 그림과 같이 설정하라.
package chapter8;
import javax.swing.*;
import java.awt.*;
public class TenColorButtonFrame extends JFrame{
TenColorButtonFrame(){
setTitle("Ten Color Button Frame");
setSize(500,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane();
c.setLayout(new GridLayout(1,10));
for(int i=0;i<10;i++){
Color [] color = {Color.RED, Color.ORANGE, Color.YELLOW,
Color.GREEN, Color.CYAN, Color.BLUE,
Color.MAGENTA, Color.GRAY, Color.PINK, Color.LIGHT_GRAY};
String text = Integer.toString(i);
JButton button = new JButton(text);
button.setOpaque(true);
button.setBackground(color[i]);
c.add(button);
}
setVisible(true);
}
public static void main(String[] args){
TenColorButtonFrame gl = new TenColorButtonFrame();
}
}
실행결과
5. GridLayout을 이용하여 다음 그림과 같이 Color.WHITE, Color.Gray, Color.RED 등 Color 클래스에 선언된 16개의 색을 배경색으로 하는 4 * 4 판을 구성하라.
package chapter8;
import java.awt.*;
import javax.swing.*;
public class GridLayoutSamples extends JFrame {
public GridLayoutSamples() {
setTitle("4x4 Color Frame");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane();
c.setLayout(new GridLayout(4, 4));
JLabel [] label = new JLabel [16];
Color [] color = {Color.RED, Color.ORANGE, Color.YELLOW, Color.GREEN,
Color.CYAN, Color.BLUE, Color.MAGENTA, Color.GRAY,
Color.PINK, Color.LIGHT_GRAY, Color.WHITE, Color.DARK_GRAY,
Color.BLACK, Color.ORANGE, Color.BLUE,Color.MAGENTA};
for(int i=0; i<label.length; i++) {
label[i] = new JLabel(Integer.toString(i));
label[i].setOpaque(true);
label[i].setBackground(color[i]);
c.add(label[i]);
}
setSize(500,200);
setVisible(true);
}
public static void main(String[] args) {
GridLayoutSamples gl = new GridLayoutSamples();
}
}
실행결과
6. 20개의 10 * 10 크기의 JLabel 컴포넌트가 프레임 내의 (50,50)에서 (250,250)영역 내 랜덤한 위치에 출력되도록 스윙 프로그램을 작성하라. 프레임의 크기를 300 *300으로 하고, JLabel의 배경색은 모두 파란색으로 하라.
package chapter8;
import javax.swing.*;
import java.awt.*;
public class RandomLabels extends JFrame {
RandomLabels(){
setTitle("Random Labels");
setSize(300,300);
Container c = new Container();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
for(int i=0;i<20;i++){
JLabel label = new JLabel();
int x = (int)(Math.random()*200) + 50;
int y = (int)(Math.random()*200) + 50;
label.setBounds(x, y, 10, 10);
label.setOpaque(true);;
label.setBackground(Color.BLUE);
c.add(label);
}
this.add(c);
setVisible(true);
}
public static void main(String[] args){
RandomLabels rl = new RandomLabels();
}
}
실행결과
'자바 > 명품 자바 에센셜' 카테고리의 다른 글
명품 자바 에센셜 실습문제 7장 (1) | 2016.01.22 |
---|---|
명품 자바 에센셜 실습문제 6장 (2) | 2016.01.21 |
명품 자바 에센셜 실습문제 5장 (0) | 2016.01.21 |
명품 자바에센셜 실습문제 4장 (0) | 2016.01.18 |
명품 자바에센셜 실습문제 3장 (10) | 2016.01.18 |