我正在尝试在我的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();
}
}
答案 0 :(得分:3)
你的类有一个paint方法,但它没有意义,因为类没有扩展GUI组件,并且该方法不是真正的绘制方法覆盖。而不是猜测这些东西,阅读图形教程:
然后创建一个扩展JPanel并在其paintComponent方法中绘制的类,如教程将向您展示的那样。将您的JPanel放在JFrame中,你应该很好。
另外 - 请记住在认为的任何方法覆盖超类的方法之前附加@Override
。如果你这样做了,编译器会抱怨你的paint方法实际上并没有覆盖任何东西。另外,不要忘记调用super的paintComponent方法,如第一篇教程中所述。