2012-05-03 13 views
0

私は1つの省略記号(Ellipse2D)を表示するプログラムを持っています。JFrameとJPanel、次にJFrame

楕円を直接JFrameに追加する必要がありますか?究極的にはJFrameに追加される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からそれをさらに拡張しました。これは、すべてのJava Swing再利用コンポーネントのようなEclipseを提供します。 –

1

BufferedImageに楕円を描き、画像をImageIconに追加し、JLabelに追加することもできます。