2016-07-28 34 views
-3

我只是一个月在我的java培训,我正在基本的图形工作,特别是一个程序绘制弧,而程序运行顺利,没有错误,程序将不会运行,只有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); 
    } 
} 

和它不是只是这个计划,那就是我试图运行 每一个图形程序ps虽然我看到与此相关的其他问题,但对我来说答案太复杂了,所以请你给我一个简单的解释。

+2

你永远不会在框架中添加ArcsPanel – Jens

+0

问题的标题并不是指问题:你的程序正在运行,但它不显示你想要的! –

回答

0

为了看到绘制的弧线,您只需在主要方法的末尾添加行frame.add(new ArcsPanel());(如Jens在他的评论中指出的那样)。

在你的代码中,你定义了面板(它应该做什么或看起来像什么),但你永远不会创建它的一个实例并将它添加到框架中。

您可以保持ArcsPanel不变,而DrawArcs(最少量的修改,我不会从您的案例继承JFrame中的类并做一些更改),只需要添加最后一行。

+0

非常感谢很多人,我读的这本书对此一无所知,再次感谢 –