Java 图形drawxxx方法不起作用

Java 图形drawxxx方法不起作用,java,swing,Java,Swing,我不熟悉图形。 我从开源软件中获得了这段代码。它应该在jframe上绘制字符串“HEeelo”,但它没有。有人能解释为什么它不能正常工作以及绘制方法的原理吗?为什么它应该编辑jframe,因为它只是一个甚至没有从main调用的方法 import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.event.KeyAdapter; import javax.swing.JFram

我不熟悉图形。 我从开源软件中获得了这段代码。它应该在jframe上绘制字符串“HEeelo”,但它没有。有人能解释为什么它不能正常工作以及绘制方法的原理吗?为什么它应该编辑jframe,因为它只是一个甚至没有从main调用的方法

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import javax.swing.JFrame;

public class view extends JFrame{

    public view(){
        this.setSize(new Dimension(250, 250));
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }
    public void paint(Graphics g){
       g.drawString("heello", 10, 10);
    }
    public static void main(String []args){
        new view();
    }
}

摆脱那个教程,那不是画画的方法

首先,基本问题是,在重写方法时,应该始终调用super.paint(…)。其次,文本不会显示,因为它是在标题栏下绘制的。您需要增加y偏移:

super.paint(g);
g.drawString("heello", 10, 40);
以及涂料法的原理

请阅读上Swing教程中的部分,了解正确的方法。基本上,您可以覆盖JPanel的
paintComponent()
方法,然后将面板添加到框架中。您不应该直接在框架上进行自定义绘制