我正在尝试使用按钮在Eclipse上创建一个基本的Tic Tac Toe游戏。我只有一门计算机编程课程,但我喜欢它,并且正在尝试通过进行一些基本的游戏设计来学习。我找到了一个YouTube视频,内容涉及如何像两人游戏一样创建井字游戏,而不是针对计算机,并完全按照它进行操作,但仍然出现错误:“无法解析为类型”。我知道“无法解析为一种类型”通常是因为某些东西拼写错误,或者缺少大写字母或其他东西,但是如果是这样的话,我将找不到它。如果有人可以帮助我弄清楚为什么会出现此错误,我将非常感激。

package ticTacToe;

import javax.swing.*;
import java.awt.GridLayout;


public class ticTacToe extends JFrame{
JPanel panel = new JPanel();
XOButton buttons[]=new XOButton[9];


我的问题是在上面的XOButton上,在XOButton的两个实例上它都显示错误“ XOButton无法解析为类型”。

public static void main(String[] args) {
    new ticTacToe();

}
public ticTacToe()
{
    super("ticTacToe");
    setSize(400,400);
    setResizable(false);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    panel.setLayout(new GridLayout(3,3));
    for(int i=0; i<9; i++)
    {
        buttons[i]=new XOButton();
        panel.add(buttons[i]);
    }
    add(panel);
    setVisible(true);
}
}


每当我调用XOButton或按钮时,我也会收到错误消息。我在这里有XOButton类:

package XOButton;

import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class XOButton extends JButton implements ActionListener{
ImageIcon X,O;
byte value=0;

/*
 * 0:nothing
 * 1:x
 * 2:O
 */

public XOButton()
{
    X=new ImageIcon(this.getClass().getResource("x.png"));
    O=new ImageIcon(this.getClass().getResource("o.png"));
    this.addActionListener(this);

}

public void actionPerformed(ActionEvent e)
{
    value++;
    value%=3;
    switch(value)
    {
    case 0:
        setIcon(null);
        break;
    case 1:
        setIcon(X);
        break;
    case 2:
        setIcon(O);
        break;
    }
}
}

最佳答案

在检查完所有内容后,我的IDE都可以正常工作,检查您的导入和类名。
我将附上您在帖子中使用的工作源代码。

壁虱类

import java.awt.Color;
import java.awt.GridLayout;

import javax.swing.GroupLayout.Alignment;
import javax.swing.JFrame;
import javax.swing.JPanel;


公共类ticTacToe扩展了JFrame {

JPanel panel = new JPanel();
XOButton buttons[]=new XOButton[9];



public ticTacToe()
{

    super("ticTacToe");

    System.out.println("TICK TACK TOE CLASS");

    setTitle("GAME");
    setAlwaysOnTop(true);
    setSize(390,390);
    setResizable(false);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    panel.setLayout(new GridLayout(3,3));
    panel.setBackground(Color.black);
    for(int i=0; i<9; i++)
    {
        buttons[i]=new XOButton();
        panel.add(buttons[i]);
    }
    add(panel);

    setVisible(true);
}

public static void main(String[] args) {

    new ticTacToe();

}
}


XObutton类

07-24 22:31