0
我想用Java创建一些形状,我创建了两个矩形并且它们正常显示,但最近我集成了一个多边形形状代码,但它在运行程序时没有显示出来。请有人帮忙!未在Java中显示多边形形状
下面是运行后的截图:
这里是我使用的代码:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class shapes extends JPanel{
int midX = 120;
int midY = 60;
int radius[] = {118,40,90,40};
int nPoints = 16;
int[] X = new int[nPoints];
int[] Y = new int[nPoints];
int i;
double max;
public void paintComponent(Graphics gphcs){
super.paintComponent(gphcs);
this.setBackground(Color.WHITE);
gphcs.setColor(Color.BLUE);
gphcs.fillRect(25,25,100,30);
gphcs.setColor(Color.GRAY);
gphcs.fillRect(25,65,100,30);
gphcs.setColor(new Color(190,81,215));
gphcs.drawString("This is my text", 25, 120);
for (double current=0.0; i<nPoints; i++)
{
double x = Math.cos(current*((2*Math.PI)/max))*radius[i % 4];
double y = Math.sin(current*((2*Math.PI)/max))*radius[i % 4];
X[i] = (int) x+midX;
Y[i] = (int) y+midY;
}
gphcs.setColor(Color.RED);
gphcs.fillPolygon(X, Y, nPoints);
}
}
NOTE:事实上我想要的多边形显示为一星形状,但它甚至没根本不会出现!
谢谢..
您是否尝试过调试或打印x和y以确保协调看起来有效? – John3136 2013-05-02 01:05:50
你从来没有设置'max'的值,所以我会期待异常,因为在for循环中除以0 – joshuahealy 2013-05-02 01:05:57
也许当你除以max时,你应该真的除以nPoints? – joshuahealy 2013-05-02 01:06:44