当前位置: 代码迷 >> Java相关 >> 这个现象大家看到过吗?帮忙解释下
  详细解决方案

这个现象大家看到过吗?帮忙解释下

热度:185   发布时间:2007-04-01 18:29:20.0
这个现象大家看到过吗?帮忙解释下
import java.awt.geom.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Shapes2 extends JFrame{
public Shapes2(){
super("Drawing 2D Shapes");
setSize(400,400);
setBackground(Color.red);
setVisible(true);
}
public void paint(Graphics g){
int xPoint[]={55,67,109,73,83,55,27,37,1, 43};
int yPoint[]={0, 36,36, 54,96,72,96,54,36,36};
Graphics2D g2d=(Graphics2D) g;
GeneralPath star=new GeneralPath();
star.moveTo(xPoint[0],yPoint[0]);//设置画的起始点
for(int k=1;k<xPoint.length;k++){
star.lineTo(xPoint[k],yPoint[k]);//连接当前点和前一个点
}
star.closePath();//连接最后一个点和第一个点
g2d.translate(200,200);
for(int j=1;j<=20;j++){
g2d.rotate(Math.PI/10.0);
g2d.setColor(new Color(20+j*10,40+j*9,130+j*4));
g2d.fill(star);
}
}
public static void main(String[] args){
new Shapes2();
}
}
程序是这样的,只是一执行那个框是透明的,
那个背景是我桌面的请高手指教下。

搜索更多相关的解决方案: 现象  解释  

----------------解决方案--------------------------------------------------------
在paint(Graphics g)方法的开头加上 super.paint(g);
建议不要直接覆些JFrame这样的paint方法来实现画图,而是自己继承一个JPanel,并覆些其paintComponent方法.
----------------解决方案--------------------------------------------------------
谢谢指教,我总忘这个。
----------------解决方案--------------------------------------------------------
  相关解决方案