Java图形不';我什么也看不出来
所以我尝试在Eclipse中执行一个项目,但我的Eclipse没有显示任何内容。 我的意思是,代码很好,但它只是打开了一个窗口,里面什么也没有显示,当它应该显示一行的时候 FirstGraph.javaJava图形不';我什么也看不出来,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
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
中。