我什么时候需要导入java.awt。*?如果我想导入javax.swing。*我还需要导入java.awt。*?

时间:2013-11-26 02:20:32

标签: java swing awt

我正在重新使用Java并查看我的一些旧代码,并且我看到了很多我已经完成的地方

import javax.swing.*;
import java.awt.*;

或实际从swing / awt包中导入特定类。我不记得是否需要导入java.awt。*来使用javax.swing中的任何东西。*或者我是否导入java.awt。*是出于其他原因?换句话说,导入java.awt。*的目的是什么?我的印象是,我需要使用JButton,JFrame等在javax.swing中。*。

2 个答案:

答案 0 :(得分:3)

如果你使用awt类型,你可以导入awt,不多也不少。

  

我不记得是否需要导入java.awt。*来使用javax.swing中的任何内容。*或者我是否导入java.awt。*是出于其他原因?换句话说,导入java.awt。*?

的目的是什么

目的是使用AWT库中的任何类。大多数人会建议您只导入您正在使用的特定类,不多也不少。

  

我认为使用JButton,JFrame等所需的一切都在javax.swing中。*。

这几乎永远不会成真。大多数Java程序不仅仅是玩具程序,还需要使用许多库。例如,大多数布局类都保存在AWT库中。大多数听众都在java.awt.event库中。

请注意,如果您选择使用完全限定的类型名称,则无需导入任何

如,

java.awt.BorderLayout myBorderLayout = new java.awt.BorderLayout(5, 5);

答案 1 :(得分:1)

这些来自javax.swing。*

JFrame
JButton

这些来自java.awt。*

Component
Color

你可以创建一个没有java.awt的窗口。*

public class Frame extends JFrame{
    public static void main(String[] args){
        new Frame();
    }
    public Frame(){
        super("Frame");
        this.setVisible(true);
    }
}

如果您愿意,我不愿意,您可以使用完全限定的类名。

javax.swing.JFrame = new javax.swing.JFrame();

如果这样做,您可以在不导入任何内容的情况下制作程序。