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



연습문제 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

배진오

소비적인 일보단 생산적인 일을 추구하며, 좋아하는 일을 잘하고 싶어합니다 :D
im@baejino.com