티스토리 뷰

1. 다음과 같이 “Let’s study Java”라는 문자열을 타이틀로 가지고 프레임의 크기가 400 * 200인 스윙 프로그램을 작성하라.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.awt.*;
import javax.swing.*;
 
public class One extends JFrame{
    One(){
        setTitle("Let's study Java");

 

        setSize(400,200);
        setVisible(true);
    }
    public static void main(String[] argv) {
        new One();
    }
}
 
cs

2. BorderLayout을 사용하여 컴포넌트 사이의 수평 간격이 5픽셀, 수직 간격이 7 픽셀이 되도록 다음과 같은 스윙 응용 프로그램을 작성하라. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.awt.*;
import javax.swing.*;
 
public class Two extends JFrame{
    Two(){
        setTitle("BorderLayout Practice");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        
        setLayout(new BorderLayout(5,7));
        
        add(new JButton("North"),BorderLayout.NORTH);
        add(new JButton("East"),BorderLayout.EAST);
        add(new JButton("West"),BorderLayout.WEST);
        add(new JButton("South"),BorderLayout.SOUTH);
        add(new JButton("Center"),BorderLayout.CENTER);
        
        setSize(400,200);
        setVisible(true);
    }
    public static void main(String[] argv) {
        new Two();
    }
}
 
cs

 

 


3. 컨텐트팬에 FlowLayout 배치 관리자를 지정하고 그림과 같이 JLabel과 JButton 컴포넌트를 이용하여 산술문을 출력하는 스윙 프로그램을 작성하라.

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
import java.awt.*;
import javax.swing.*;
 
public class Three extends JFrame{
    Three(){
        setTitle("BorderLayout Practice");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        
        Container contentPane = getContentPane();
        
        contentPane.setLayout(new FlowLayout());
        
        contentPane.add(new JLabel("100 + 200"));
        contentPane.add(new JButton("="));
        contentPane.add(new JLabel("300"));
        
        setSize(400,100);
        setVisible(true);
        
    }
    public static void main(String[] argv) {
        new Three();
    }
}
 
cs

 


 

4. 예제 8-5의 소스코드를 수정하여 각 버튼의 배경색을 다음 그림과 같이 설정하라.
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
32
33
import java.awt.*;
import javax.swing.*;
 
public class Four extends JFrame{
    Four(){
        Color [] color = {Color.RED, Color.ORANGE, Color.YELLOW,
                Color.GREEN, Color.CYAN, Color.BLUE,
                Color.MAGENTA, Color.GRAY, Color.PINK, Color.LIGHT_GRAY};
 
        setTitle("Ten Color Buttons Frame");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        
        Container contentPane = getContentPane();
        
        contentPane.setLayout(new GridLayout(1,10));
        
        for(int i = 0; i < 10; i++) {
            String text = Integer.toString(i);
            JButton b = new JButton(text);
            b.setOpaque(true);
            b.setBackground(color[i]);
            contentPane.add(b);
        }
        
        setSize(500,200);
        setVisible(true);
        
    }
    public static void main(String[] argv) {
        new Four();
    }
}
 
cs

5. GridLayout을 이용하여 다음 그림과 같이 Color.WHITE, Color.Gray, Color.RED 등 Color 클래스에 선언된 16개의 색을 배경색으로 하는 4 * 4 판을 구성하라.


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
32
33
34
35
36
import java.awt.*;
import javax.swing.*;
 
public class Five extends JFrame{
    Five(){
        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}; 
 
        setTitle("Ten Color Buttons Frame");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        
        Container contentPane = getContentPane();
        
        contentPane.setLayout(new GridLayout(4,4));
        
        for(int i = 0; i < 16; i++) {
            String text = Integer.toString(i);
            JLabel la = new JLabel(text);
            
            la.setOpaque(true);
            la.setBackground(color[i]);
            
            contentPane.add(la);
        }
        
        setSize(500,200);
        setVisible(true);
        
    }
    public static void main(String[] argv) {
        new Five();
    }
}
 
cs

 6. 20개의 10 * 10 크기의 JLabel 컴포넌트가 프레임 내의 (50,50)에서 (250,250)영역 내 랜덤한 위치에 출력되도록 스윙 프로그램을 작성하라. 프레임의 크기를 300 *300으로 하고, JLabel의 배경색은 모두 파란색으로 하라.

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
32
33
34
35
import java.awt.*;
import javax.swing.*;
 
public class Six extends JFrame{
    Six(){
        setTitle("Random Labels");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        
        Container contentPane = getContentPane();
        contentPane.setLayout(null);
        
        for(int i = 0; i < 20; i++) {
            JLabel la = new JLabel();
            
            int x = (int)(Math.random()*200+ 50;
            int y = (int)(Math.random()*200+ 50;
            
            la.setLocation(x,y);
            la.setSize(10,10);
            
            la.setOpaque(true);
            la.setBackground(Color.BLUE);
            
            contentPane.add(la);
        }
        
        setSize(300,300);
        setVisible(true);
        
    }
    public static void main(String[] argv) {
        new Six();
    }
}
 
cs


참고 문헌 : 명품 자바 에센셜 생능출판 / 황기태



본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.


댓글