자바에서는 AWT 컴포넌트와 스윙 컴포넌트를 제공한다. 이들 중 어떤 것이 경량 컴포넌트이고, 어떤 것이 중량 컴포넌트인가? 그리고 이들은 어떤 점에서 서로 다른가?
운영체제의 도움 유무에 따라 경량 컴포넌트 또는 중량 컴포넌트로 불린다. AWT는 운영체제의 도움을 받아 화면에 출력되기 때문에 중량 컴포넌트로 불리고, 실행되는 운영체제에 따라 다른 모양으로 그려진다. 스윙은 AWT와 달리 경량 컴포넌트로, 순수 자바 언어로 작성돼 운영체제와 관계없이 항상 동일하게 작동하며 동일한 모양으로 그려진다.
데스크톱에서 실행되는 GUI 응용프로그램 작성 시 AWT보다 스윙 사용을 권장하는 이유는 무엇인가?
두 라이브러리는 동작하는 방식이 다르고 응용프로그램을 작성하는 방법에도 차이가 있는데, 일반적으로 다양하고 모양이 예쁜 스윙 컴포넌트를 더 많이 사용하기 때문에 스윙을 더 권장한다.
다음 중 스윙 컴포넌트가 아닌 것은?
다음 중 컴포넌트는?
컴포넌트와 컨테이너에 대해 잘못 말한 것은?
배치관리자에 대해 잘못 말한 것을 모두 찾아라.
다음은 200x300 크기의 스윙 프레임을 만든 코드이다. 빈칸에 필요한 코드를 채워라.
____________________ //이곳에 필요한 import 문을 삽입하라.
public class MyFrame _______________ {
public MyFrame() {
_________________ // 프레임 타이틀로 "hello" 문자열 출력
_________________ // 프레임 크기를 200x300으로 설정
_________________ // 프레임 화면 출력
}
public static void main(String[] args) {
Myframe frame = ___________
}
}
import javax.swing.*; / extends JFrame /
setTitle("hello"); / setSize(200,300); / setVisible(true); / new MyFrame();
다음은 스윙 프레임을 작성한 코드이다. 빈칸을 채워라.
____________________________ // 이곳에 필요한 import 문을 삽입하라.
____________________________ // 이곳에 필요한 import 문을 삽입하라.
public class MyFrame ______________ {
public MyFrame() {
__________________; // 컨텐트팬 알아내기
__________________; // 컨텐트팬에 FlowLayout 배치관리자 설정
__________________; // 컨텐트팬 배경색을 노란색으로 설정
__________________; // 컨텐트팬에 "click" 버튼 달기
setSize(300,300);
setVisible(true);
}
}
import javax.swing.*; / import javax.swing.*; / extends JFrame /
Container c = getContentPane() / c.setLayout(new FlowLayout()) / c.setBackground(Color.YELLOW) / JButton btn = new JButton("click")
다음 지시에 따라 컨테이너 c에 배치관리자를 서정하는 코드를 작성하라.
Container c;
c.________________
버튼 컴포넌트를 통해 절대 위치에 배치하고자 한다. 주석을 참고하여 빈칸을 완성하라.
____________________________ // 이곳에 필요한 import 문을 삽입하라.
____________________________ // 이곳에 필요한 import 문을 삽입하라.
public class MyFrame ________________ {
public MyFrame() {
___________________; // 컨텐트팬 알아내기
___________________; // 컨텐트팬에 배치관리자 제거
___________________; // "click" 문자열의 버튼 컴포넌트 생성
___________________; // 버튼의 크기를 100x30으로 설정
___________________; // 버튼의 위치를 (50, 70)으로 설정
___________________; // 컨텐트팬에 버튼 달기
setSize(300,300);
setVisible(true);
}
public static void main(String[] args) {
new MyFrame();
}
}
import java.awt.*; / import javax.swing.*; / extends JFrame / Container c = getContentPane(); / c.setLayout(null); / JButton btn = new JButton("click"); / btn.setSize(100,30); / btn.setLocation(50,70); / c.add(btn);