Swing中的绘画不起作用

时间:2014-06-27 08:10:07

标签: java swing jframe paint repaint

为什么这不起作用?它向我展示了GUI但不是画面。我如何将其更改为两个类?

import java.awt.Graphics;
import javax.swing.JFrame;

public class runpaintgui extends JFrame{    

    public static void main(String[] args){
        JFrame frame = new JFrame();
        frame.setSize(5000,2000);
        frame.setResizable(false);
        frame.setTitle("game");
        frame.setVisible(true);    
    }

    public void paint(Graphics g){
        super.paint(g);
        g.drawString("adsf",40,45);
        g.draw3DRect(50, 30, 600, 700, true);   

        repaint();
    }    
}

2 个答案:

答案 0 :(得分:5)

您正在此行中创建通用JFrame

JFrame frame = new JFrame();

您想要做的是:

JFrame frame = new runpaintgui();

然后将调用paint()方法

答案 1 :(得分:5)

您必须实例化您的课程,而不是JFrame课程。

变化:

JFrame frame = new JFrame();

runpaintgui frame = new runpaintgui();

然后将调用paint()方法

请勿在{{1​​}}中致电repaint()。因为paint会调用repaint()