哦,原来如此呀,该成 javax.swing.*;后已经可以成功编译了, 可又出先了一个问题: 按照上面的那段CODE:在应该BUTTON应该可以看到一个定义好的加载图片(例如:我指定的是:ImageIcon buttonIcon = new ImagIcon("java.jpg"); 但运行CODE后却不能正确的加载,提示错误是: java.security.AccessControlException: access denied (java.io.FilePermission \C:\ j2sdk1.4.1_05\bin\text\swingbutton\ read) at java.security.AccessControlContext.checkPermission(AccessControlConte xt.java:270) at java.security.AccessController.checkPermission(AccessController.java: 401) at java.lang.SecurityManager.checkPermission(SecurityManager.java:542) at java.lang.SecurityManager.checkRead(SecurityManager.java:887) at sun.awt.SunToolkit.getImageFromHash(SunToolkit.java:457) at sun.awt.SunToolkit.getImage(SunToolkit.java:504) at javax.swing.ImageIcon.<init>(ImageIcon.java:119) at SwingButton.init(SwingButton.java:13) at sun.applet.AppletPanel.run(AppletPanel.java:348) at java.lang.Thread.run(Thread.java:536)这又是怎么回事呢,该怎么修改?谢谢!
首先我说,你应该查查docs,你就会发现Jbutton是在java.swing.Jbutton这个位置,所以你应该使用import java.swing.*;那样就不会出现问题了,还有你这份拷贝中,还有个错误 就是你写的ImageIcon buttonIcon = new ImagIcon("java.jpg");中的 new ImagIcon应该为 new ImageIcon("java.jpg");
awt是核心包,swing是扩展包.
swing 在javax底下吧?
包不是自己定义的吗怎样把包放在当前目录下
import com.sun.java.Swing.*;在当前目录下建立一个自己的包(如:myclass),然后把在
com.sun.java.Swing.*;中建立的类名作为文件名再建立一个文件夹,放到自己的包里面,编译上面的程序,把生成class文件放到这个包里就行了,
我该怎么办呢,上面有的同志说把: com.sun.java.swing改为javax.swing.*
这样做首先不说它行不行,但为什么要这样该呢?请说的仔细点,谢谢!
但是后来引起争论,系统自带的包这样太麻烦 后来就改为java.*:javax.*前一个是标准库,后面的是标准扩展库!
在定义自己的包时不会出现名称空间冲突就才用逆序的internet域名!
因为你调用的是标准库 所以javax.swing.*;就可以了,这是后来sun把swing.*列为标准扩展库!不过你的代码在java2之前的环境一定可以运行!
可又出先了一个问题: 按照上面的那段CODE:在应该BUTTON应该可以看到一个定义好的加载图片(例如:我指定的是:ImageIcon buttonIcon = new ImagIcon("java.jpg");
但运行CODE后却不能正确的加载,提示错误是:
java.security.AccessControlException: access denied (java.io.FilePermission \C:\
j2sdk1.4.1_05\bin\text\swingbutton\ read)
at java.security.AccessControlContext.checkPermission(AccessControlConte
xt.java:270)
at java.security.AccessController.checkPermission(AccessController.java:
401)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:542)
at java.lang.SecurityManager.checkRead(SecurityManager.java:887)
at sun.awt.SunToolkit.getImageFromHash(SunToolkit.java:457)
at sun.awt.SunToolkit.getImage(SunToolkit.java:504)
at javax.swing.ImageIcon.<init>(ImageIcon.java:119)
at SwingButton.init(SwingButton.java:13)
at sun.applet.AppletPanel.run(AppletPanel.java:348)
at java.lang.Thread.run(Thread.java:536)这又是怎么回事呢,该怎么修改?谢谢!
就是你写的ImageIcon buttonIcon = new ImagIcon("java.jpg");中的 new ImagIcon应该为
new ImageIcon("java.jpg");
改为javax.swing.*就没有问题了,因为Jbutton是在javax.swing.Jbutton;
还有你这份拷贝中,new ImageIcon写错了,写成了new ImagIcon