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
'Programming Study > 절대JAVA' 카테고리의 다른 글
[절대JAVA]10장 프로그래밍 연습문제(1) (0) | 2018.10.01 |
---|---|
[절대JAVA]9장 프로그래밍 연습문제(2) (0) | 2018.09.29 |
[절대JAVA]8장 프로그래밍 연습문제(2) (0) | 2018.09.27 |
[절대JAVA]8장 프로그래밍 연습문제(1) (0) | 2018.09.27 |
[절대JAVA]7장 프로그래밍 연습문제(2) (0) | 2018.09.25 |
댓글