我在Eclipse Oxygen上进行2D绘图,我的代码中没有错误,但为什么它没有显示任何输出。我的意思是当我点击运行时没有进展。
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics2D;
import java.awt.geom.Arc2D;
import java.awt.geom.Rectangle2D;
public class HOUSE1 extends Frame {
public void paint(Graphics2D g) {
Graphics2D g2d = (Graphics2D) g;
g2d.drawString("HOME SWEET HOME",80,60);
setBackground(Color.white);
Arc2D arc1 = new Arc2D.Double(250,50,500,300,225,90,Arc2D.Double.PIE);
g2d.draw(arc1);
g2d.setColor(Color.red);
g2d.fill(arc1);
Rectangle2D rect = new Rectangle2D.Double(325,300,350,300);
g2d.draw(rect);
g2d.setColor(Color.blue);
g2d.fill(rect);
Rectangle2D rect1 = new Rectangle2D.Double(325,300,350,300);
g2d.draw(rect1);
g2d.setColor(Color.black);
g2d.fill(rect1);
}
public static void main(String[]args){
HOUSE1 f = new HOUSE1();
f.setTitle("HOUSE");
f.setSize(300,100);
}
}
答案 0 :(得分:0)
你忘了让你的画面可见。
只需添加:
f.setVisible(true);
您必须将paint方法声明修复为:
@override
public void paint(Graphics g) {
// your code
}
答案 1 :(得分:0)
您的窗口为空,因为您的paint
方法永远不会被调用。你的方法
public void paint(Graphics2D g) // DOESN'T WORK
需要更改为
public void paint(Graphics g) // Correct
以便覆盖 paint
中的Frame
方法。图形系统只会调用paint(Graphics)
;如果您的paint
方法未覆盖paint(Graphics)
中的方法Frame
,Frame
中的方法将被调用而不是您的方法。
答案 2 :(得分:0)
1st:在你的主要空白中你需要将你的框架(f)设置为可见 - > f.setVisible(真)
第二:你也许想要f.pack();在您将其设置为可见之前,以确保您的组件表现得像预期的那样。
3:在java中,我们在课堂上使用大写第一个字母,如#34; House",完整的大写字母用于最后的字母。