关于import的问题

hackervb 2010-02-21 11:01:07
import javax.swing.*;
import java.awt.*;
public class MyJPanelTest extends JFrame{
JFrame frame;
JPanel panel1;
JPanel panel2;
public MyJPanelTest(){
frame=new JFrame("测试JPanel组件");
panel1=new JPanel();
panel1.setBorder(new TitledBorder("panel1"));
panel1.add(new JButton("panel1"));
panel2=new JPanel();
panel2.add(new JButton("panel2"));
panel2.setBorder(new TitledBorder("panel2"));
Container cp=frame.getContentPane();
cp.setLayout(new FlowLayout());
cp.add(panel1,BorderLayout.WEST);
cp.add(panel2,BorderLayout.CENTER);
frame.setSize(300,200);
frame.show();
}
public static void main(String[] args){
new MyJPanelTest();
}
}
run:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code
at MyJPanelTest.<init>(MyJPanelTest.java:10)
at MyJPanelTest.main(MyJPanelTest.java:23)
Java Result: 1

后来加上import javax.swing.border.*;就编译通过了
我就是不明白了,我前面的import javax.swing.*;不是已经包含了javax.swing.border.*;了吗?为什么还要再写一个详细的才可以不出错呢,两句之间有什么差别呢?
...全文
277 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤独剑客 2010-03-05
  • 打赏
  • 举报
回复
最好是import到具体的类, 因为这样会节省JDK的执行时间,
如果import到包下的所有的类的话, JVM会加载所有的类
所以这样消耗内存的
pengzhistar 2010-03-05
  • 打赏
  • 举报
回复
1楼正解!回复内容太短了!
xtsqianli 2010-03-05
  • 打赏
  • 举报
回复
学习来了 正解呀
Lingzhi_2006 2010-03-05
  • 打赏
  • 举报
回复
以前有过,到没注意过,路过,学习
xxpp688 2010-03-05
  • 打赏
  • 举报
回复
引用 1 楼 knightzhuwei 的回复:
import只引进当前包中的类 不包括子包的类

受教了
acRush7 2010-02-23
  • 打赏
  • 举报
回复
leart something. thanks.
wangshiyang 2010-02-23
  • 打赏
  • 举报
回复
具体的问题楼上的都说明了
lz还可以这样写:
例如这两句
cp.add(panel1,BorderLayout.WEST);
cp.add(panel2,BorderLayout.CENTER);
可以写出
cp.add(panel1,javax.swing.border.BorderLayout.WEST);
cp.add(panel2,javax.swing.border.BorderLayout.CENTER);
oO临时工Oo 2010-02-22
  • 打赏
  • 举报
回复
不包含子PACKET中的类
saygoodbyetoyou 2010-02-22
  • 打赏
  • 举报
回复
引用 1 楼 knightzhuwei 的回复:
import只引进当前包中的类 不包括子包的类

正解!
quansheng2580 2010-02-22
  • 打赏
  • 举报
回复
用什么包 引用什么 最好不要用.* 影响效率
hovei 2010-02-22
  • 打赏
  • 举报
回复
引用 1 楼 knightzhuwei 的回复:import只引进当前包中的类 不包括子包的类



YES!!
bobo364 2010-02-22
  • 打赏
  • 举报
回复
引用 1 楼 knightzhuwei 的回复:
import只引进当前包中的类 不包括子包的类


正解,看来只能接分了
BearKin 2010-02-22
  • 打赏
  • 举报
回复
引用 1 楼 knightzhuwei 的回复:
import只引进当前包中的类 不包括子包的类


学习了 平时从不用import package.* 原来还有这么一说
豌豆SAMA 2010-02-22
  • 打赏
  • 举报
回复
引用 4 楼 luffysy 的回复:
只引进当前包内的类, 不引进子包下的类

是这样~
LuffySY 2010-02-22
  • 打赏
  • 举报
回复
只引进当前包内的类, 不引进子包下的类
hackervb 2010-02-22
  • 打赏
  • 举报
回复
原来如此,明白了,谢谢大家
铑枪--突廆孒 2010-02-21
  • 打赏
  • 举报
回复
楼上正解,import javax.swing.*;这样的写法只是导入java.swing包下的所有类,其子包及其子..包下的类确不能导入。。。因此需要javax.swing.border.*;这样写
knightzhuwei 2010-02-21
  • 打赏
  • 举报
回复
import只引进当前包中的类 不包括子包的类

62,621

社区成员

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

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