2016-03-15 99 views
-2

我正在java中介绍计算机科学类。我试图写一个图形程序来解决这个问题......我似乎无法找到什么导致与我的for循环错误

“设计一个代表具有指定半径和颜色的星形的类,使用填充多边形绘制星形。在随机位置绘制10颗随机半径的程序。“

所以我完成了我认为是相当直接的代码,但是当我去编译程序时,我得到了48个错误。编译器似乎在抱怨程序的几乎所有行。

任何帮助解决这些问题,非常感谢。 (我希望这是一个简单的错误,正在影响大部分程序。)

在此先感谢。

这里是错误的列表(与文件位置删除):

48 errors found: 
File: C...Star.java [line: 15] 
Error: illegal start of type 
File: C...Star.java [line: 15] 
Error: ')' expected 
File: C...Star.java [line: 15] 
Error: illegal start of type 
File: C...Star.java [line: 15] 
Error: <identifier> expected 
File: C...Star.java [line: 15] 
Error: ';' expected 
File: C...Star.java [line: 15] 
Error: illegal start of type 
File: C...Star.java [line: 15] 
Error: <identifier> expected 
File: C...Star.java [line: 15] 
Error: <identifier> expected 
File: C...Star.java [line: 15] 
Error: illegal start of type 
File: C...Star.java [line: 15] 
Error: <identifier> expected 
File: C...Star.java [line: 16] 
Error: ';' expected 
File: C...Star.java [line: 17] 
Error: ']' expected 
File: C...Star.java [line: 17] 
Error: ';' expected 
File: C...Star.java [line: 17] 
Error: <identifier> expected 
File: C...Star.java [line: 17] 
Error: illegal start of type 
File: C...Star.java [line: 17] 
Error: ';' expected 
File: C...Star.java [line: 18] 
Error: ']' expected 
File: C...Star.java [line: 18] 
Error: illegal start of type 
File: C...Star.java [line: 18] 
Error: <identifier> expected 
File: C...Star.java [line: 18] 
Error: ';' expected 
File: C...Star.java [line: 18] 
Error: illegal start of type 
File: C...Star.java [line: 18] 
Error: illegal start of type 
File: C...Star.java [line: 18] 
Error: ';' expected 
File: C...Star.java [line: 19] 
Error: ']' expected 
File: C...Star.java [line: 19] 
Error: illegal start of type 
File: C...Star.java [line: 19] 
Error: <identifier> expected 
File: C...Star.java [line: 19] 
Error: ';' expected 
File: C...Star.java [line: 19] 
Error: illegal start of type 
File: C...Star.java [line: 19] 
Error: illegal start of type 
File: C...Star.java [line: 19] 
Error: ';' expected 
File: C...Star.java [line: 22] 
Error: class, interface, or enum expected 
File: C...Star.java [line: 25] 
Error: class, interface, or enum expected 
File: C...Star.java [line: 28] 
Error: class, interface, or enum expected 
File: C...Star.java [line: 29] 
Error: class, interface, or enum expected 
File: C...Star.java [line: 31] 
Error: class, interface, or enum expected 
File: C...Star.java [line: 31] 
Error: class, interface, or enum expected 
File: C...Star.java [line: 31] 
Error: class, interface, or enum expected 
File: C...Star.java [line: 34] 
Error: class, interface, or enum expected 
File: C...Star.java [line: 35] 
Error: class, interface, or enum expected 
File: C...Star.java [line: 36] 
Error: class, interface, or enum expected 
File: C...Star.java [line: 37] 
Error: class, interface, or enum expected 
File: C...Star.java [line: 47] 
Error: class, interface, or enum expected 
File: C...Star.java [line: 50] 
Error: class, interface, or enum expected 
File: C...Star.java [line: 52] 
Error: class, interface, or enum expected 
File: C...Star.java [line: 52] 
Error: class, interface, or enum expected 
File: C...Star.java [line: 52] 
Error: class, interface, or enum expected 
File: C...Star.java [line: 55] 
Error: class, interface, or enum expected 
File: C...Star.java [line: 56] 
Error: class, interface, or enum expected 

星类:

import java.util.Random; 
import javax.swing.JPanel; 
import java.awt.*; 

public class Star extends JPanel 
{ 
    Random random = new Random(); 

    int radius = random.nextInt(10)+1; 

    int[] xPos = new int[10]; 
    int[] yPos = new int[10]; 
    int[] rad = new int[10]; 

    for(int i=0; i!=10; i++) 
    { 
    int xPos[i] = random.nextInt(200)+1; 
    int yPos[i] = random.nextInt(200)+1; 
    int rad[i] = random.nextInt(10)+1; 
    } 

    public Star() 
    { 
    setPreferredSize(new Dimension(200, 200)); 
    } 

    int[] xStar = new int[10]; 
    int[] yStar = new int[10]; 
    int[] rad = new int[10]; 

    for(int ii=0; ii!=10; ii++) 
    { 
    private int[] (xStar[ii]) = {1*rad[ii]+ xPos[ii], 3*rad[ii]+ xPos[ii], 3*rad[ii]+ xPos[ii], 5*rad[ii]+ xPos[ii], 7*rad[ii]+ xPos[ii], 5*rad[ii]+ xPos[ii] }; 
    private int[] (yStar[ii]) = {5*rad[ii]+ yPos[ii], 4*rad[ii]+ yPos[ii], 1*rad[ii]+ yPos[ii], 3*rad[ii]+ yPos[ii], 3*rad[ii]+ yPos[ii], 5*rad[ii]+ yPos[ii] }; 
    private int[] (xStar2[ii]) = {1*rad[ii]+ xPos[ii], 3*rad[ii]+ xPos[ii], 3*rad[ii]+ xPos[ii], 5*rad[ii]+ xPos[ii], 7*rad[ii]+ xPos[ii], 5*rad[ii]+ xPos[ii] }; 
    private int[] (yStar2[ii]) = {5*rad[ii]+ yPos[ii], 6*rad[ii]+ yPos[ii], 9*rad[ii]+ yPos[ii], 7*rad[ii]+ yPos[ii], 7*rad[ii]+ yPos[ii], 5*rad[ii]+ yPos[ii] }; 
    } 

    //----------------------------------------------------------------- 
    // Constructor: Sets up the basic characteristics of this panel. 
    //----------------------------------------------------------------- 

    //----------------------------------------------------------------- 
    // Draws a Star using polygons and polylines. 
    //----------------------------------------------------------------- 

    public void paintComponent(Graphics page) 
    { 
     super.paintComponent(page); 
     page.setColor(Color.red); 

     for(int iii=0; iii!=10; iii++) 
     { 
     page.fillPolygon(yStar[iii], xStar[iii], xStar[iii].length); 
     page.fillPolygon(yStar2[iii], xStar2[iii], xStar2[iii].length); 
     } 

    } 
} 

星画家(​​亚军):

import javax.swing.JFrame; 

public class StarClassCrushingMyDreams 
{ 
    //----------------------------------------------------------------- 
    // Creates the main frame of the program. 
    //----------------------------------------------------------------- 
    public static void main(String[] args) 
    { 

     JFrame frame = new JFrame("Rocket"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(300,300); 


     Star panel = new Star(); 



     frame.getContentPane().add(panel); 
     frame.setVisible(true); 

     frame.setVisible(true); 
    } 
} 

回答

-1

你”我已经把你的循环放在课堂范围内,而不是在一个方法里面。这不合法。

并且你在for循环的范围内声明了xPos等,所以你实际上不会设置类变量,只是for循环中的影子副本。

因为我在这里:让每个明星一个JPanel看起来“奇怪”,难道你不想在同一个面板中画出10颗星吗?

0

还有在初始化块或构造不属for环(如@ John3136的答案),环路的内容无效:

int xPos[i] = random.nextInt(200)+1; 

应该

xPos[i] = random.nextInt(200)+1; 

你没有声明一个变量,你只是给现有的数组赋值。

同理:

private int[] (xStar[ii]) = {1*rad[ii]+ xPos[ii], 3*rad[ii]+ xPos[ii], 3*rad[ii]+ xPos[ii], 5*rad[ii]+ xPos[ii], 7*rad[ii]+ xPos[ii], 5*rad[ii]+ xPos[ii] }; 

我不知道你要在这里写的是什么。当然private int[]不应该在那里,但也xStar有类型int[],而不是int[][]

此外,您还没有在任何地方宣布xStar2yStar2

相关问题