Java图形不';我什么也看不出来

Java图形不';我什么也看不出来,java,swing,jframe,awt,Java,Swing,Jframe,Awt,所以我尝试在Eclipse中执行一个项目,但我的Eclipse没有显示任何内容。 我的意思是,代码很好,但它只是打开了一个窗口,里面什么也没有显示,当它应该显示一行的时候 FirstGraph.java import java.awt.Graphics; import javax.swing.JFrame; public class FirstGraph extends JFrame { private static final long serialVersionUID = 1L

所以我尝试在Eclipse中执行一个项目,但我的Eclipse没有显示任何内容。 我的意思是,代码很好,但它只是打开了一个窗口,里面什么也没有显示,当它应该显示一行的时候

FirstGraph.java

import java.awt.Graphics;

import javax.swing.JFrame;

public class FirstGraph extends JFrame {

    private static final long serialVersionUID = 1L;

    public static void main(String[] args) {
        JFrame f = new JFrame();
        f.setName("First Graph");
        f.setSize(300, 300);
        f.setVisible(true);
        f.setBounds(30, 30, 300, 300);
        f.getContentPane().add(new MyCanvas());
        f.setVisible(true);
    }

    public void Paint(Graphics g) {
        g.drawLine(50, 50, 250, 280);
    }
}
MyCanvas.java

import java.awt.Graphics;

import javax.swing.JComponent;

public class MyCanvas extends JComponent{

    private static final long serialVersionUID = -2508263540396372610L;

    public void Paint(Graphics g){
        int[] x;
        x = new int[]{40, 125, 256, 290};
        int[] y;
        y = new int[]{50, 115, 279, 295};

        g.drawPolygon(x, y, x.length);
    }
}

问题是什么?

显然,它区分大小写。

我写了
public void Paint(Graphics g){..}
,而不是
public void Paint(Graphics g){..}
,所以我的问题已经解决了。

public void Paint(Graphics g){
更改为
@覆盖public void Paint(Graphics g){
。使用
@Override
注释,而不是
paint
使用
paintComponent
方法。
f.setBounds(30,30,300,300);
最好获得
MyCanvas
以返回合理的首选大小和
pack()
框架。另外,不要试图覆盖框架中的任何绘画。除了明智的建议,
FirstGraph
类从
JFrame
扩展而来,但是您可以将画布添加到main方法中的另一个本地
JFrame
。“显然,它区分大小写。”当然可以。但是如上所述,覆盖
paintComponent(Graphics)
,并且仅在
JComponent
中。