2012-05-03 5 views
0

하나의 타원 (Ellipse2D)을 표시하는 프로그램이 있습니다.JFrame 대 JPanel 다음 JFrame

타원을 JFrame에 직접 추가해야합니까, 아니면 JPanel에 추가해야합니까? 결국 JPanel에 추가됩니까? (JPanel 추가 작업이 더 많음)

장기적으로 어느 것이 도움이 될까요? (나는 키 바인딩을 가하고 고려할 수 있습니다.)

는 것을 명확하게하려면

public class Test extends JFrame{ // This is a JFrame 

Ellipse ellipse = new Ellipse(); // I have an ellipse class 

Test(){ 

... 
add(ellipse); 
... 

} 

} 

을 아니면 내가 수행해야합니다 :

어떻게해야

public class Test extends JFrame{ 

Test2 test2 = new Test2(); 

Test(){ 
... 
add(test2) 
... 
} 
} 

public class Test2 extends JPanel{ // This is a JPanel 

Ellipse ellipse = new Ellipse(); // I have an ellipse class 

Test2(){ 

... 
add(ellipse); 
... 

} 

} 
+0

나는이 질문을 대답할만한 것으로 보지 않는다. 그 상황에서 가장 필요한 것은 필요한 것입니다. 타원을 그리는 GUI가 필요하다면 JPanel을 JFrame에 추가하십시오. 타원을 그리고 다른 것을 표시하는 GUI를 표시하려면 더 많은 구성 요소를 추가하십시오. 그것은 모두 여러분에게 달려 있습니다. 한 가지 방법을 사용해도 나중에 변경하거나 다른 클래스를 다른 방법으로 사용하지 않는다는 의미는 아닙니다. –

+0

'getContentPane(). add (ellipse)'는 JFrame에서 호출하는 것이 좋다고 생각하지만, 타원 객체가 무엇인지 더 자세히 알면 좋을 것입니다. – richard

답변

1

가 JPanel의 이클립스 (또는 일부 Java Swing 컨테이너 구성 요소를 확장). 그렇지 않은 경우 JPanel 솔루션으로 이동하면 구성 요소로 처리됩니다. 그런 다음 JFrame에 먼저 레이아웃 관리자 (BorderLayout)를 추가 한 다음 패널을 CENTER에 추가하십시오 (직접 선택하십시오).

데스크톱 응용 프로그램 개발에 대한 나의 접근 방식에있다 :

이 다음 레이아웃을 기반으로 JFrame의에 JPanel의 추가 JFrame의에 레이아웃 매니저를 추가합니다. 따라서 GUI를보다 쉽게 ​​관리하고 쉽게 업데이트/변경이 가능합니다.

+0

아니요 타원은 원을 그리는 클래스 일뿐입니다. – Anonymous181

+0

JPanel에서 더 잘 확장하십시오. 이클립스는 모든 자바 스윙 재사용 컴포넌트를 동작과 같이 제공한다. –

1

BufferedImage에 타원을 그리고 ImageIcon에 이미지를 추가하고 JLabel에 아이콘을 추가 할 수 있습니다.