我正在尝试建立一个国际象棋棋盘,但我一直收到一个我似乎无法解决的错误。
我试图找到它可能是什么,但我只是迷路了。
我的代码:
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
public class chess extends JFrame {
int column_want, column_curr, column_diff;
int row_want, row_curr, row_diff;
public static void main(String[] args) {
System.out.println("Welcome to java");
board frame = new boardLayout();
frame.setSize(500, 500);
frame.setTitle("chess Board");
frame.setLocationRelativeTo(null); //center of frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public void boardLayout() {
JPanel board = new JPanel(new GridLayout(6,5,1,1)); // gridLayout (row, column, hgap, vgap)
add(board, BorderLayout.NORTH);
}
}
它声称在第12行,但我不知道为什么会出现错误。
第12行:
board frame = new boardLayout();
答案 0 :(得分:2)
您声明了一个类型board
,它既不在导入中,也不在文件中。然后你尝试创建一个类boardLayout
的实例,这个类型是未知的。
public void boardLayout()
是一个方法声明,它不能用作构造函数,除非它与它所属的类具有相同的名称,并且您将删除返回类型void
。与public chess()
一样。
一个构造函数确实声明了它的返回类型,因为它已经返回它实例化的对象。因此new chess()
将返回类型为chess
的新对象。
答案 1 :(得分:0)
你正在混合语法元素。您只需在创建新对象时使用new
关键字。在调用方法时,不需要使用" new"。
提示命名:方法名称应包含动词,因此createBoard
会更多" java风格"。