본문 바로가기
Programming Study/절대JAVA

[절대JAVA]9장 프로그래밍 연습문제(1)

by 푸고배 2018. 9. 28.

1. 다음 조건을 만족하며 클래스 JFrame을 상속받는 클래스를 구현하여 테스트하는 프로그램을 작성하시오.

- 윈도우의 가로와 세로가 각각 300, 200으로

- 윈도우의 콘텐트 페인 색상을 Color.red로

- 윈도우의 캡션 제목을 "프로그래밍 연습 1"로

- 윈도우의 종료 버튼으로 프로그램도 함께 종료하도록

 

<소스코드>

Chapter9_1.java

package Chapter9_1;

import java.awt.Color;
import java.awt.Container;

import javax.swing.JFrame;

public class Chapter9_1 extends JFrame{

	public Chapter9_1(String title) { // 생성자
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 종료버튼으로 종료
		setSize(300,200); // 가로 : 300 , 세로 : 200
		setTitle(title);
		Container pane = getContentPane();
		pane.setBackground(Color.RED);
		setVisible(true);
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Chapter9_1 c = new Chapter9_1("프로그래밍 연습 1");
	}

}

 

 

2. 다음 조건을 만족하며 클래스 JFrame을 상속받는 클래스를 구현하여 테스트하는 프로그램을 작성하시오.

- 윈도우의 가로와 세로가 각각 300, 150으로, 윈도우의 콘텐트패인 색상을 Color.lightGray로

- 윈도우의 캡션 제목을 "프로그래밍 연습 2"로

- 윈도우의 종료 버튼으로 프로그램도 함께 종료하도록

- 상단에 "OK" 버튼과 하단에 "Cancel" 버튼 추가, BorderLayout의 "North", "South"이용

- 메소드 setDefaultLookAndFeelDecorated(boolean)의 인자를 true, false로 하여 결과를 비교

<소스코드>

Chapter9_2.java

package Chapter9_2;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Chapter9_2 extends JFrame{
	private JButton btn1, btn2;
	public Chapter9_2(String title) {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(300,150); // 가로 : 300, 세로 150
		setTitle(title); // 윈도우 캡션 제목
		setBackground(Color.lightGray);
		
		setLayout(new BorderLayout());
		btn1 = new JButton("OK");
		btn2 = new JButton("Cancel");
		add(btn1, BorderLayout.NORTH);
		add(btn2, BorderLayout.SOUTH);

		setDefaultLookAndFeelDecorated(true);
//		setDefaultLookAndFeelDecorated(false);
		
		setVisible(true);
		
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Chapter9_2 c = new Chapter9_2("프로그래밍 연습 2");
		
		
	}

}

 

 

3. 프레임에 설정되어 있는 기본 배치관리자를 사용하고, 다음 조건을 만족하는 클래스를 구현하여 테스트하는 프로그램을 작성하시오.

- 다음과 같이 3개의 레이블(JLabel)이 배치되도록

- 3개의 레이블에 지정된 색상이 배경색이 되도록

* 레이블의 배경색이 표시되려면 setOpaque(true)를 호출하도록

레이블객체.setOpaque(true);

레이블객체.setBackground(Color.YELLOW);

<소스코드>

Chapter9_3.java

package Chapter9_3;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class Chapter9_3 extends JFrame{
	private JLabel yellowJLabel, orangeJLabel, blueJLabel;
	public Chapter9_3(String title){
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(375, 200); // 가로350, 세로 150+여유
		setTitle(title);
		
		yellowJLabel = new JLabel("yellow");
		yellowJLabel.setBackground(Color.yellow);
		yellowJLabel.setOpaque(true);
		yellowJLabel.setPreferredSize(new Dimension(50, 100)); // 크기 변경
		
		orangeJLabel = new JLabel("orange");
		orangeJLabel.setBackground(Color.orange);
		orangeJLabel.setOpaque(true);
		orangeJLabel.setPreferredSize(new Dimension(300, 100)); // 크기 변경
		
		blueJLabel = new JLabel("blue");
		blueJLabel.setBackground(Color.blue);
		blueJLabel.setOpaque(true);
		blueJLabel.setPreferredSize(new Dimension(350, 50)); // 크기 변경
		
		setLayout(new FlowLayout(FlowLayout.CENTER,0,0));
		add(yellowJLabel);
		add(orangeJLabel);
		add(blueJLabel);
		
		setVisible(true);
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Chapter9_3 c = new Chapter9_3("BorderLayout 윈도");
	}

}

 

 

4. 프레임에 설정되어 있는 기본 배치관리자를 사용하고, 다음 조건을 만족하는 클래스를 구현하여 테스트하는 프로그램을 작성하시오.

- 다음과 같이 슬라이더 4개가 동, 서, 남, 북에 배치되도록

- 4개의 슬라이더는 다음에 표시되는 조건과 모습을 만족하도록

 

<소스코드>

Chapter9_4.java

package Chapter9_4;

import java.awt.BorderLayout;
import java.awt.Color;

import javax.swing.JFrame;
import javax.swing.JSlider;

public class Chapter9_4 extends JFrame{
	public Chapter9_4(String title) {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(600,300);
		setTitle(title);
		
		setLayout(new BorderLayout());
		JSlider sdNorth = new JSlider(0,200,40); //0~200, 초기값 40
		sdNorth.setPaintLabels(true); // 주 눈금 글씨
		sdNorth.setPaintTicks(true); // 주 눈금
		sdNorth.setMinorTickSpacing(10); // 부 눈금 간격
		sdNorth.setMajorTickSpacing(50); // 주 눈금 간격
		sdNorth.setForeground(Color.BLUE); // 파란색 글씨
		
		JSlider sdEast = new JSlider(JSlider.VERTICAL,100,200,150); // 수직, 100~200, 초기값 150
		sdEast.setPaintLabels(true); // 주 눈금 글씨
		sdEast.setPaintTicks(true); // 주 눈금
		sdEast.setMinorTickSpacing(20); // 부 눈금 간격
		sdEast.setMajorTickSpacing(50); // 주 눈금 간격
		
		JSlider sdWest = new JSlider(JSlider.VERTICAL); // 0~100, 초기값 50
		sdWest.setPaintLabels(true); // 주 눈금 글씨
		sdWest.setPaintTicks(true); // 주 눈금
		sdWest.setMajorTickSpacing(50); // 주 눈금 간격
		
		JSlider sdSouth = new JSlider(0,160,90); // 0~160, 초기값 90
		sdSouth.setPaintLabels(true); // 주 눈금 글씨
		sdSouth.setPaintTicks(true); // 주 눈금
		sdSouth.setMinorTickSpacing(40); // 부 눈금 간격
		sdSouth.setMajorTickSpacing(80); // 주 눈금 간격
		sdSouth.setForeground(Color.red); // 눈금 색상 레드
		add(sdNorth,BorderLayout.NORTH);
		add(sdEast,BorderLayout.EAST);
		add(sdWest,BorderLayout.WEST);
		add(sdSouth,BorderLayout.SOUTH);
		
		
		setVisible(true);
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Chapter9_4 c = new Chapter9_4("슬라이더");
	}

}

 

참고자료 : 인피니티북스 절대 JAVA

github 주소 : 

https://github.com/ch1517/Network-programming/tree/master/Chapter9

 

반응형

댓글