java中有关载入包的疑惑。

zhangzhongke007 2009-10-12 09:38:42
小弟最近学习图形界面编程,由AWT转到Swing,在看一个程序时感到疑惑。一个程序载入的包中同时包含

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

可是我看到在awt包中的类,在swing包中都有对应的类,那么是否可以去掉第一个包?在Core Java Volume I Fundamentals中看到,“Swing没有完全替代AWT,而是基于AWT架构之上”,是不是说AWT包和Swing包同时使用?
请教!!!
...全文
150 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
swandragon 2009-10-13
  • 打赏
  • 举报
回复
可以同时使用
用到哪个类就引入哪个类
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
这些是按需导入,用到的类才导入,没用到的是不会导入的
即使写了import java.awt.*;如果没用到awt下的类,编译的时候就会把
import java.awt.* 去掉了
bigbro001 2009-10-12
  • 打赏
  • 举报
回复
swing并没有完全取代awt,一般的component组件,在swing中都有对应,但有两种基本情况是必须载入awt包的:
1.需要使用跟layout manager有关的类的时候,例如:
java.awt.BorderLayout
java.awt.BoxLayout
java.awt.FlowLayout
java.awt.GridLayout
这时就必须载入:
import java.awt.*;

2.需要用到event类的时候,例如:
java.awt.event.ActionEvent (by Button/JButton/TextComponent)
java.awt.event.ItemEvent (generated by Checkbox/JCheckbox)
java.awt.event.ComponentEvent
java.awt.event.FocusEvent (generated by all comp)
java.awt.event.WindowEvent
java.awt.event.InputEvent
java.awt.event.KeyEvent
java.awt.event.MouseEvent (generated by all comp)
javax.swing.event.ChangeEvent
javax.swing.event.AncestorEvent
(以上为树形结构,csdn正常无法显示)
这时就必须载入:
import java.awt.event.*;

这两种情况下,如果用swing来编写,那么载入swing的同时,也需要载入awt.*包和awt.event.*包
bolink5 2009-10-12
  • 打赏
  • 举报
回复
强烈不推荐加包路径中有"*" 例如:javax.swing.*; 强烈建议写到具体的类路径
这句话说的是很有道理的
这对具体加载的时候,效率会提高很多
说实在的我对swing不怎么懂,用的也少,如果你真对界面开发感兴趣的话,可以使用其他的语言
java的优势还是在web这块,j2ee才是核心啊。
kokobox 2009-10-12
  • 打赏
  • 举报
回复
根据需要选择。。

还有,强烈不推荐加包路径中有"*" 例如:javax.swing.*; 强烈建议写到具体的类路径。

runshine 2009-10-12
  • 打赏
  • 举报
回复
不是必须同时使用
视情况而定,一般来说,如果没用到awt的组件,可以去掉第一个包
一头头 2009-10-12
  • 打赏
  • 举报
回复
是啊 可以同时使用

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧