Swing中的绘画不起作用

use*_*258 1 java swing paint jframe 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();
    }    
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*nov 5

您正在JFrame此行中创建通用:

JFrame frame = new JFrame();
Run Code Online (Sandbox Code Playgroud)

你想要做的是:

JFrame frame = new runpaintgui();
Run Code Online (Sandbox Code Playgroud)

然后你的paint()方法被调用.


Jen*_*ens 5

你必须实例化你的类而不是JFrame类.

更改:

JFrame frame = new JFrame();
Run Code Online (Sandbox Code Playgroud)

runpaintgui frame = new runpaintgui();
Run Code Online (Sandbox Code Playgroud)

然后你的paint()方法被调用.

别叫repaint()paint.因为repaint()打电话paint.