2016-11-18 52 views
0

我想在我的JFrame中绘制一个矩形,但是当我运行它时它只是空白。我尝试了其他一些方法来绘制它们,但它们都是一样的。请记住,我很新,所以如果有任何明显的错误,我很抱歉:P。Java:如何在我的JFrame中绘制我的矩形?

import javax.swing.*; 
import java.awt.*; 

public class Main { 

JFrame jf1; 

public Main() { 

    jf1 = new JFrame("Draw"); 
    jf1.setVisible(true); 
    jf1.setSize(900, 700); 
    jf1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); 
    jf1.setLocation(dim.width/2-jf1.getSize().width/2, dim.height/2-jf1.getSize().height/2); 

} 

public void paint(Graphics g) { 

    g.fillRect(0, 60, 100, 50); 
    g.setColor(Color.BLACK); 

} 

public static void main(String[] args) { 

    Main shoe = new Main(); 

    } 
} 
+0

查看[自定义绘画方法](https://tips4java.wordpress.com/2009/05/08/custom-painting-approaches/)有两种方法来执行此操作。 – camickr

回答

3

你的类有一个paint方法,但由于该类扩展没有GUI组件和方法是不是一个真正的绘画方法重写它的意义。而不是猜测这东西,阅读的图文教程:

然后创建一个扩展JPanel类和借鉴在其paintComponent方法中,教程将向您展示。把你的JPanel放在一个JFrame中,你应该很好。

此外 - 请记得在认为应该重写超类的方法之前附加@Override。如果你这样做了,编译器会抱怨你的绘图方法实际上并没有覆盖任何东西。另外,不要忘记调用super的paintComponent方法,并在第一个教程中解释。