반응형

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();

}

}

실행결과



반응형

+ Recent posts