Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 AWT 구성 요소는 무겁고 Swing 구성 요소는 경량인 이유는 무엇입니까?


  • AWT Abstract Window ToolKit의 약자이며 Java GUI 프로그래밍을 지원합니다. 독립 실행형 Java 응용 프로그램/애플릿을 위한 이식 가능한 GUI 라이브러리입니다. AWT는 Java Swing 동안 애플리케이션과 기본 GUI 간의 연결을 제공합니다. AWT 기술을 기반으로 하는 일련의 GUI 구성요소를 구현하며 플러그 가능한 모양과 느낌을 제공할 수 있습니다. . Java Swing은 전적으로 Java 프로그래밍 언어로 구현됩니다.
  • 우선, 가중치가 높다는 것은 코드를 로드하는 데 비교적 더 많은 시간이 걸리고 더 많은 시스템 리소스를 소비한다는 의미입니다. AWT는 구성 요소가 기본 운영 체제에 종속되기 때문에 무거운 것으로 간주됩니다. 예를 들어 java.awt.Checkbox의 개체를 만들 때 클래스가 있으면 기본 운영 체제가 확인란을 생성합니다. 이것이 AWT 구성 요소가 플랫폼에 종속되는 이유이기도 합니다.
  • 반면에 대부분의 Java Swing 구성 요소는 Java 자체에서 구현됩니다. 창과 같은 일부 최상위 구성 요소는 운영 체제에 종속됩니다. 그러나 여전히 전체 프로그램은 AWT보다 비교적 가볍습니다.
  • 자바 스윙 AWT 의 최적화된 고급 버전입니다. AWT를 기반으로 구축되었습니다. 여전히 많은 AWT 클래스가 Swing에서 직간접적으로 사용됩니다. 자바 스윙을 진행하기 전에 AWT의 기본을 하는 것이 중요하다. 그렇지 않으면 Java에서 GUI를 사용하는 동안 여러 제어 위임에 대한 기본 사실을 이해할 수 없습니다.

import javax.swing.SwingUtilities;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class Test {
   public static void main(String[] args) {
      ApplicationWindow window = new ApplicationWindow();
      window.setVisible(true);
   }
}
class ApplicationWindow extends JFrame {
   public ApplicationWindow() {
      this.setSize(200, 100);
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      this.setLayout(new FlowLayout());
      Button exitButton = new Button("Exit");
      exitButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent event) {
            System.exit(0);
         }
      });
      this.add(exitButton);
      JMenuBar menuBar = new JMenuBar();
      JMenu menu = new JMenu("Overlapping Menu");
      JMenuItem menuItem = new JMenuItem("Overlapping Item");
      menu.add(menuItem);
      menuBar.add(menu);
      this.setJMenuBar(menuBar);
      this.validate();
   }
}

출력

Java에서 AWT 구성 요소는 무겁고 Swing 구성 요소는 경량인 이유는 무엇입니까?