与扩展到JFrame
和javax.swing.JFrame
有什么不同吗?从JFrame延伸
例子:
public class Authenticator extends JFrame {
和...
public class Authenticator extends javax.swing.JFrame {
与扩展到JFrame
和javax.swing.JFrame
有什么不同吗?从JFrame延伸
例子:
public class Authenticator extends JFrame {
和...
public class Authenticator extends javax.swing.JFrame {
指定它这没有什么区别,除非你有一个名为JFrame
另一个类,并且不是导入它的javax.swing.JFrame
。
这就是说,正如Andrew Thompson所说,你不应该延伸JFrame
,你应该使用一个实例。
这取决于你的进口。如果您导入javax.swing.JFrame,则不会。
无论如何,你必须导入JFrame
,它最有可能来自javax.swing
包,如果包含多个JFrame
类,你只需要编写整个包路径,这样编译器就会知道你想使用哪一个,因此,如果只有一个JFrame
类,那么进口就足够了,不必再
如果您导入javax.swing.JFrame;然后使用 公共Authenticator类扩展的JFrame { 如果没有的话用 公共Authenticator类扩展jvax.swing.JFrame {
但是当你有不同的功能套餐同名类第二种方法主要用于,以区分这些类。
例如
[ - ] mypackage的
| ---- [ - ] pakage1
| --- TestClass.java
| ---- [ - ] pakage2
| --- TestClass.java
这是我们的情况一个包名为mypackage的和两个子包pakage1和pakage2
现在,如果我们只是导入它会给这个
import mypackage.pakage1.TestClass;
import mypackage.pakage2.TestClass;
class Testw
{
public static void main(String []args)
{
System.out.println("Swah!");
}
}
它会给以下错误
C:\Program Files\Java\jdk1.6.0_38\bin>javac Testw.java
Testw.java:2: mypackage.pakage1.TestClass is already defined in a single-type import
import mypackage.pakage2.TestClass;
^
1 error
所以你要做什么?
在这种情况下,您可以使用第二种方法,也称为完全取消名称 现在您导入一个pakage并为其他方法使用完全限定名称。
import mypackage.pakage1.TestClass;
class Testw
{
public static void main(String []args)
{
TestClass testclass1 = new TestClass();
mypackage.pakage2.TestClass testclass2 = new mypackage.pakage2.TestClass();
System.out.println("Swah!");
}
}
所以整个事情的夏日是完全合格的名称时使用的是命名冲突,我们也可以使用这种方法时,他们没有命名冲突,他们将在节目
没有-ve影响
***请勿延长框架或其他顶层容器。而是创建并使用一个实例。 –
请参阅http://stackoverflow.com/q/1143923/758280 – Jeffrey
如果您有另一个类调用'JFrame',那么您需要识别您想要使用的包 – nachokk