从JFrame扩展

时间:2013-07-14 20:31:28

标签: java swing jframe extend

延伸到JFramejavax.swing.JFrame是否有区别?

示例:

public class Authenticator extends JFrame {

和...

public class Authenticator extends javax.swing.JFrame {

4 个答案:

答案 0 :(得分:6)

除非您有另一个名为JFrame的类并且正在导入而不是javax.swing.JFrame,否则没有区别。

那就是说,正如Andrew Thompson所说,你不应该扩展JFrame,你应该使用一个实例。

答案 1 :(得分:1)

如果您导入 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


那你干什么?
在这种情况下,您使用第二种方法,也称为完全quailfied名称 现在你导入一个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!");
}
}

所以整个事情的总结是当名字冲突时使用完全限定名称,我们也可以在他们没有名字冲突时使用这种方法,他们将对程序没有影响

答案 2 :(得分:0)

这取决于您的导入。如果导入javax.swing.JFrame,则为。

答案 3 :(得分:0)

你必须导入JFrame,它最有可能来自javax.swing包,如果包含多个JFrame类,你只需编写整个包路径,所以编译器会知道你要使用哪一个,所以如果只有一个JFrame类,那么导入就足够了,你不必再指定它