代码之家  ›  专栏  ›  技术社区  ›  Eli K

语法错误,插入“{”以完成枚举体(在类的末尾)

  •  0
  • Eli K  · 技术社区  · 6 年前
    package checkers;
    
    import java.awt.Color;
    import java.awt.Dimension;
    
    import javax.swing.JButton;
    import javax.swing.JPanel;
    
    
    enum Job{SPAWN, KING, NORM};
    enum myColor{RED, BLACK};
    
    int tileRow;
    int tileCol;
    Job job;
    myColor side;
    JButton button;
    Checker piece;
    Color color;
    
    public class Tile 
    {
        public Tile(int posRow, int posCol, JPanel panel, ActionListener listener)
        {
            int tileRow = posRow;
            int tileCol = posCol;
            if(tileRow > 9 || tileRow < 1)
                job = Job.KING;
            else if(tileRow < 4 || tileRow > 6)
                job = Job.SPAWN;
            else
                job = Job.NORM;
    
            button = new JButton();
            button.setPreferredSize(new Dimension(83, 83));
            if(tileRow%2==0)
            {
                if(tileCol%2==0)
                {
                    color = Color.BLACK;
                }
                else
                    color = Color.RED;
            }
            else
            {
                if(tileCol%2!=0)
                {
                    color = Color.BLACK;
                }
                else
                    color = Color.RED;
            }
            button.addActionListener((java.awt.event.ActionListener) listener);
        }
    
        public void Reset()
        {
    
        }
    
        public boolean isClicked(Object source)
        {
            if(source == button)
                return true;
            else 
                return false;
        }
    
    
    
    
    }
    

    编辑 我编辑了整个代码体。据Eclipse所知,myColor右括号“应该”在类主体之后。

    Eclipse希望我删除myColor的右括号,并将其替换为分号;无论我是否放置分号,Eclipse都会告诉我右大括号不应该在那里,如果我删除它,就会将我的classBody右大括号读取为EnumBody右大括号。

    我不知道到底发生了什么,但这肯定会导致类内发生奇怪的事情(为跳棋游戏制作一个平铺类+对象)。

    说到奇怪的事情,我的意思是,如果我想让Eclipse以没有错误的方式读取Tile,我就不能从另一个类生成Tile对象数组。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Jagrut Sharma    6 年前

    不完全确定您收到的错误消息。以下示例 EnumIssue.java 工作正常:

    public class EnumIssue {
    
        enum Job
        {
            SPAWN, KING, NORM
        }
        enum myColor
        {
            RED, BLACK
        }
    
        public static void main(String[] args) {
            Job j = Job.SPAWN;
            myColor c = myColor.BLACK;
            System.out.println(j);
            System.out.println(c);
        }
    }
    

    输出:

    SPAWN
    BLACK
    

    在提供了相关的完整代码后添加:

    在类中移动变量声明 Tile 。更新的代码段如下所示:

    :
    :
    import javax.swing.JPanel;
    
    enum Job{SPAWN, KING, NORM};
    enum myColor{RED, BLACK};
    
    //This is where current variable declarations are. Move them inside class.
    
    public class Tile
    {
        //This is where variable declarations are moved to. 
        int tileRow;
        int tileCol;
        Job job;
        myColor side;
        JButton button;
        Checker piece;
        Color color;
    
        public Tile(int posRow, int posCol, JPanel panel, ActionListener listener)
        {
            int tileRow = posRow;
            :
            :