Синтаксическая ошибка, вставьте «{» для завершения EnumBody (в конце класса) - PullRequest
0 голосов
/ 28 апреля 2018
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;
    }




}

РЕДАКТИРОВАТЬ Я полностью отредактировал текст своего кода. Закрывающая скобка myColor, насколько известно Eclipse, «должна быть» после classBody.

Eclipse хочет, чтобы я удалил закрывающую скобку myColor и заменил ее точкой с запятой; независимо от того, помещаю ли я точку с запятой, Eclipse сообщает мне, что закрывающей скобки там не должно быть, и если я ее удаляю, считывает мою закрывающую скобку classBody как закрывающую скобку EnumBody.

Я не знаю, что, черт возьми, происходит, но это определенно вызывает странные вещи, происходящие внутри класса (создание класса Tile + объект для игры в шашки).

И под странными вещами я имею в виду, что я не могу создать массив объектов Tile из другого класса, если я хочу, чтобы Eclipse считал Tile без ошибок.

1 Ответ

0 голосов
/ 28 апреля 2018

Не совсем точно, сообщение об ошибке вы получаете Ниже приведен пример 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;
        :
        :
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...