Java:如何在JFrame中绘制矩形?

时间:2016-11-18 02:53:21

标签: java swing

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

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();

    }   
}  

1 个答案:

答案 0 :(得分:3)

你的类有一个paint方法,但它没有意义,因为类没有扩展GUI组件,并且该方法不是真正的绘制方法覆盖。而不是猜测这些东西,阅读图形教程:

然后创建一个扩展JPanel并在其paintComponent方法中绘制的类,如教程将向您展示的那样。将您的JPanel放在JFrame中,你应该很好。

另外 - 请记住在认为的任何方法覆盖超类的方法之前附加@Override。如果你这样做了,编译器会抱怨你的paint方法实际上并没有覆盖任何东西。另外,不要忘记调用super的paintComponent方法,如第一篇教程中所述。