2016-07-28 15 views
-3

私はJavaトレーニングでわずか1ヶ月ですが、プログラムがエラーなしでスムーズに実行されている間にプログラムが円弧を描くような基本グラフィックスに取り組んでいます。 JFrame私のNetBeansインターフェイスの右下のステータスバーがちょうど私のグラフィックスプログラムは実行されていません

import javax.swing.*; 
import java.awt.Graphics; 
class ArcsPanel extends JPanel{ 
    protected void paintComponent (Graphics g){ 
     super.paintComponent(g); 
     int xCenter = getWidth()/2; 
     int yCenter = getHeight()/2; 
     int radius = (int)(Math.min(getWidth(),getHeight())*0.4); 
     int x = xCenter- radius; 
     int y = yCenter-radius; 
     g.fillArc(x, y, 2*radius, 2*radius, 0, 30); 
    } 
} 
public class DrawArcs extends JFrame{ 
    ArcsPanel paint = new ArcsPanel(); 
    public static void main(String[] args) { 
     DrawArcs frame = new DrawArcs(); 
     frame.setTitle("my first arc"); 
     frame.setSize(200,100); 
     frame.setLocationRelativeTo(null); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setVisible(true); 
    } 
} 

を実行している読み続けると、それは、それは私が を実行しようとしているすべてのグラフィックプログラムだけでこのプログラムでイマイチながら、それに何もポップアップ表示私はこの問題に関連する他の問題を見てきましたが、私にとっては答えが複雑すぎましたので、問題に簡単な説明を教えてください。

+2

フレームにArcsPanelを絶対に追加しないでください。 – Jens

+0

質問のタイトルは問題を参照していません。あなたのプログラムは動作していますが、あなたが望むものは表示されません! –

答えて

0

描画された円弧を表示するには、メインメソッドの最後にframe.add(new ArcsPanel());という行を追加するだけです(Jensがコメントに指摘したとおり)。

コードでは、パネルを定義します(それを行うかどうか)。ただし、そのインスタンスを作成してフレームに追加することは決してありません。

ArcsPanelは変更せずにそのまま使用できますが、DrawArcs(変更量は最小ですが、ケースではJFrameからクラスを継承せずに変更を加えます)では最後の行を追加するだけです。

+0

ありがとう、たくさんの男、私が読んでいた本は何も言わなかった、もう一度感謝する –

関連する問題