'명품 자바 에센셜 풀이' 시리즈명품 자바 에센셜 연습문제 8장(이론)

baealex

소비적인 일보단 생산적인 일을 좋아합니다.

Sign in to view email


문제와 해답은 직접 작성한 것으로 오타가 있을 수도 있으며 해답역시 틀린 부분이 있을 수 있습니다. 틀린 부분에 대한 지적은 적극 수용하도록 하겠습니다. 문제를 먼저 풀어보시고 참고용으로만 봐주시길 바랍니다.



연습문제 8장

1. 다음 중에서 스윙 컴포넌트 클래스가 아닌 것은?
① Panel
② JFrame
③ JButton
④ JLabel


2. 다음 중에서 컴포넌트가 아닌 것은?
① Panel
② JFrame
③ Font
④ JPanel


3. 다음 코드의 빈칸에 스윙 프로그램에 필요한 문을 삽입하라.

import java.awt.*;
import javax.swing.*;
public class MyFrame extends __________ {
    MyFrame() {
        _____________ // 컨텐트팬에 대한 레퍼런스 얻기
        _____________ // 컨텐트팬에 "hello" 버튼 달기
        _____________ // 프레임을 너비 200, 높이 400픽셀로 설정
        setVisible(true);
    }
    public static void main(String [] args) {
        _____________ // MyFrame 생성
    }
}

3행 : JFrame
5행 : Container c = getContentPane();
6행 : c.add(new JButton("hello"));
7행 : setSize(200, 400);
11행 : new MyFrame();


4. 다음 프로그램을 실행하면 아무것도 출력되지 않는다. 정상적으로 작동하도록 프로그램을 수정하라.

import javax.swing.*;
public class MyFrame extends JFrame {
    MyFrame() {
        setSize(300,300);
        setVisible(true);
    }
    public static void main(String [] args) {
        JFrame mf = new JFrame();
    }
}

8행을 다음과 같이 수정 : new MyFrame();


5. 컴포넌트와 컨테이너에 대해 잘못 말한 것은?
① JFrame은 컨테이너다.
② 컨테이너는 다른 컨테이너에 삽입될 수 없다.
③ 배치관리자는 컨테이너에서 컴포넌트의 배치를 담당한다.
④ 컴포넌트나 컨테이너가 화면에 출력되려면 최상위 컨테이너에 포함되어야 한다.


6. 배치 관리자에 대해 잘못 말한 것은?
① 배치관리자는 컨테이너에 포함된 컴포넌트들의 위치와 크기를 설정한다.
② 배치관리자는 한 컨테이너에 여러 개 존재할 수 있다.
③ 배치관리자가 없는 컨테이너를 만들 수 있다.
④ JPanel은 배치관리자를 가지지만 JButton은 배치관리자를 가지지 않는다.


7. 다음 코드에서 컨텐트팬의 배치관리자를 아래 문항에 주어진 대로 설정하라.

Container c = getComtentPane(); // 컨텐트팬 알아내기
_______________________________________ // 배치관리자 설정

(1) 컴포넌트 사이의 수평 수직 간격이 각각 10, 20픽셀, BorderLayout

c.setLayout(new BorderLayout(10, 20));

(2) 컴포넌트 사이의 수평 수직 간격이 각각 10, 20픽셀, 중앙정렬, FlowLayout

c.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 20));

(3) 컴포넌트 사이의 수평 수직 간격이 각각 10, 20픽셀, 행수 2, 열수 5의 GridLayout

c.setLayout(new GridLayout(2, 5, 10, 20));


8. 컴포넌트를 절대 위치에 부착하고자 한다. 주석문을 참고하여 빈칸에 적절한 코드를 삽입하라.

import java.awt.*;
import javax.swing.*;
public class MyFrame extends JFrame {
    MyFrame() {
        __________________________ // 컨텐트팬에 대한 레퍼런스 얻기
        __________________________ // 컨텐트팬의 배치관리자 제거
        JButton b = new JButton("Hello");
        __________________________ // b의 위치를 30, 40으로 설정
        __________________________ // b의 크기를 100x100으로 설정
        __________________________ // 컨텐트팬에 b 삽입
        setSize(300, 300);
        setVisible(true);
    }
    public static void main(String [] args) {
        new MyFrame();
    }
}

5행 : Container c = getContentPane();
6행 : c.setLayout(null);
8행 : b.setLocation(30, 40);
9행 : b.setSize(100, 100);
10행 : c.add(b);


작성된 댓글이 없습니다!
로그인된 사용자만 댓글을 작성할 수 있습니다.