我的图形程序没有运行:只有`JFrame`弹出,其中没有任何内容

时间:2016-07-28 06:40:27

标签: java graphics

我正在研究基本的图形,特别是一个程序绘制弧,而程序运行顺畅,没有错误,程序不会运行,只有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);
    }
}

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

1 个答案:

答案 0 :(得分:0)

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

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

你可以保持ArcsPanel不变,而DrawArcs(修改量最少,我不会在你的情况下从JFrame继承一个类并做一些更改),只需要添加最后一行。