2013-07-14 2 views
1

JFramejavax.swing.JFrame으로 확장하는 것과 차이점이 있습니까?JFrame에서 확장

예 :

public class Authenticator extends JFrame { 

및 ...

public class Authenticator extends javax.swing.JFrame { 
+5

*** *** 프레임이나 다른 최상위 컨테이너를 확장하지 마십시오. 대신 하나의 인스턴스를 만들고 사용하십시오. –

+0

참조 http://stackoverflow.com/q/1143923/758280 – Jeffrey

+0

다른 클래스가'JFrame '이라면 사용하려는 패키지를 식별해야합니다. – nachokk

답변

6

JFrame이라는 다른 클래스가없고 javax.swing.JFrame 대신 가져 오는 경우 차이가 없습니다.

그런데 Andrew Thompson이 말한대로 JFrame을 확장하면 안되며 인스턴스를 사용해야합니다.

0

그것은 가져 오기에 따라 달라집니다. javax.swing.JFrame을 가져 오면 no.

0

어쨌든 JFrame을 가져와야하고 패키지가 javax.swing 일 가능성이 높습니다. JFrame 클래스가 여러 개 포함되어있는 경우 전체 패키지 경로 만 작성하면되므로 컴파일러에서 사용하려는 패키지를 알 수 있으므로, 따라서 JFrame 클래스가 하나뿐이면 가져 오기가 충분하므로 다시 지정하지 않아도됩니다.

1

을 가져 오는 경우 javax.swing.JFrame; 다음 공용 클래스 인증 프로그램을 사용하지 않을 경우 다음 공용 클래스 인증 프로그램을 사용는 jvax.swing.JFrame {
를 확장하지만 다른 pakage에서 동일한 이름을 가진 클래스가있을 때 두 번째 방법이 주로 사용된다 JFrame의 {
를 확장 , 클래스를 구분합니다. 예

[-] myPackage에
  | - ---- []              
pakage1 | TestClass.java ---
  | ---- [-] pakage2
              | --- TestClass.java

,여기

는 우리가 가지고있는 상황 패키지 이름 myPackage에 우리가 그냥이

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 
줄 것이다 가져 오는 경우

이제 두 개의 서브 패키지 pakage1 및 pakage2


당신은 무엇을합니까?
이 경우 완전 균등 이름 이라고도하는 두 번째 방법을 사용합니다. 이제 하나의 pakage를 가져오고 other에 정규화 된 이름을 사용합니다.

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!"); 
} 
} 

그래서 모든 일의 여름 프로그램

에는 - 제가 효과를 자신의 수 없습니다, 그 완전한 이름은 이름 충돌하는 자신의 경우에는 이름이 충돌하는 자신 없을 때, 우리는 또한이 방법을 사용할 수 있습니다 사용됩니다