图形drawxxx方法不起作用

时间:2014-06-27 19:44:09

标签: java swing

我是图形新手。 我从开源获取此代码。它应该绘制String" HEeelo"在jframe上,但它没有。可以解释为什么它不能正常工作和绘制方法的原理?为什么要编辑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();
    }
}

1 个答案:

答案 0 :(得分:4)

摆脱那个教程,这不是绘画的方式。

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

super.paint(g);
g.drawString("heello", 10, 40);
  

和绘画方法的原理

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