명품 자바 에센셜 연습문제 10장(이론)


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



연습문제 10장

1. 다음 중 스윙 패키지에 속하지 않는 클래스는 무엇인가?
① JComponent
② Container
③ JButton
④ JMenu


2. Item 이벤트가 발생하는 경우에 해당하지 않은 것은?
① 해체되어 있는 상태의 체크박스를 클릭하여 선택 상태로 변경한 경우
② 선택 상태 체크박스를 클릭한 경우
③ 새로운 라디오 버튼을 클릭한 경우
④ JTextField에 <Enter>키를 입력한 경우
액션 이벤트가 발생한다.


3. Action 이벤트가 발생하는 경우가 아닌 것은?
① JButton 컴포넌트를 마우스로 클릭한 경우
② JTextField 컴포넌트에 키보드로 입력하는 도중 <Enter> 키를 입력한 경우
③ JCheckBox 컴포넌트를 마우스로 선택한 경우
④ JComboBox의 아이템을 마우스로 선택한 경우
아이템 이벤트가 발생한다.


4. 다음은 Item 리스너 클래스를 작성한다 빈칸에 적절한 코드를 삽입하라.

1
2
3
4
5
6
7
8
class MyItemListener implements ItemListener {
    public void __________(__________ e) {
        if(e.getStateChange() == __________)
            System.out.println("선택되었습니다.");
        else
            System.out.println("해제되었습니다.");
     }
}

2행 : itemStateChange, ItemEvent
3행 : ItemEvent.SELECTED


5. 메뉴를 만들어 프레임에 붙이는 다음 코드의 빈칸에 적절한 코드를 삽입하라.

1
2
3
4
5
6
JMenuBar mb = new JMenuBar();
__________ fileMenu = new __________("File"); // "File" 메뉴 생성
mb.add(fileMenu); // 메뉴바에 파일 메뉴를 붙인다.
fileMenu.add(__________); // "New" 메뉴 아이템을 생성하여 붙인다.
fileMenu.__________; // 분리선 삽입
frame.__________(mb); // 프레임에 메뉴바 붙임

2행 : JMenu, JMenu
4행 : JMenuItem("New")
5행 : addSeprator()
6행 : setJMenuBar


6. 다음 빈칸에 적절한 말을 보기에서 찾아 삽입하라.

간단한 팝업 다이얼로그를 생성하여 화면에 출력하려면 JOptionPane클래스를 이용하면 된다. 이 클래스에는 팝업 다이얼로그를 출력하는 static 타입의 메소드가 여러 개 있다. 하지만 이들은 모두 모달 다이얼로그로서 일단 화면에 출력되면 닫기 전에 다른 작업을 할 수 없는 특징이 있다. 이름이나 주소 등 한 줄로 된 문자열을 입력받을 수 있는 간단한 입력 다이얼로그는 showInputDialog()메소드를 호출하면 된다. 이 메소드의 리턴 값은 사용자입력 문자열이지만, 취소 버튼이 선택되거나 강제로 창이 닫히면 null를(을) 리턴한다.


7. "sunny.jpg"를 가진 이미지 레이블 sunnyLabel을 만드는 코드는?

1
2
ImageIcon IMG = new ImageIcon("sunny.jpg"); // 이미지 파일 로딩, 이미지 객체 생성
JLabel sunnyLabel = new JLabel(IMG); // 레이블 컴포넌트 sunnyLabel 생성


8. JTextArea로 만든 컴포넌트는 여러 줄의 텍스트 입력을 받을 수 있는 창이지만, 스크롤 기능을 제공하지 않는다. 스크롤이 되게 하고 컨텐트펜에 붙이고자 하면 어떻게 해야 하는지 다음 코드에 빈칸을 이용하여 설명하라.

1
2
3
4
JTextArea ta = new JTextArea();
Container c = getContentPane(); // 프레임의 컨텐트팬을 알아낸다.
____________________
____________________

c.add(new JScrollPane(ta));


9. 다음 각 경우를 위해 GUI를 구성할 때, JRadioButton, JCheckBox, JButton, JLabel 중 적절한 컴포넌트와 컴포넌트의 개수는?

(1) 사용자에게 '아침', '점심', '저녁' 중 하나를 선택하도록 한다.
JRadioButton 3개

(2) 회원 등록 시, '남/여', '내국인/외국인', '성년/미성년'의 3가지 정보를 입력받고자 한다.
JCheckBox 3개

(3) 화면을 4등분하여 4개의 이미지를 출력하고자 한다.
JLabel 4개

(4) '다음'으로 계속 진행하는 사용자 입력을 받고자 한다.
JButton 1개


WRITTEN BY

배진오

웹 개발자 지망생
im@baejino.com

comments powered by Disqus