我将它用于棋盘并将其连接到JPanel:
import javax.swing.*;
import java.awt.Graphics;
import java.awt.Color;
public class CheckerBoard extends JFrame
{
public void paint(Graphics g)
{
int row;
int col;
int x;
int y;
for ( row = 0; row < 9; row++ )
{
for ( col = 0; col < 8; col++)
{
x = col * 22;
y = row * 22;
if ( (row % 2) == (col % 2) )
g.setColor(Color.WHITE);
else
g.setColor(Color.BLACK);
g.fillRect(x, y, 22, 22);
}
}
}
这是Connceted JPanel:
import javax.swing.*;
import java.awt.Graphics;
import java.awt.Color;
public class JFRAME
{ public static void main()
{
CheckerBoard check = new CheckerBoard();
check.setTitle("CheckerBoard");
check.setSize(180, 200);
check.setDefaultCloseOperation(EXIT_ON_CLOSE);
check.setVisible(true);
}
}
当我编译Jpanel时,它说“找不到符号变量EXIT_ON_CLOSE”
我试图制作一个8×8的棋盘,在显示之前提示用户输入棋盘的行数和列数。
答案 0 :(得分:2)
EXIT_ON_CLOSE
实际上是public static final int
中定义的JFrame
字段,这意味着您需要使用JFrame
来引用它,例如JFrame.EXIT_ON_CLOSE
或者您可以将import static javax.swing.JFrame.EXIT_ON_CLOSE;
添加到导入语句
正如Hovercraft指出的那样,你不应该覆盖paint
等JFrame
顶级容器,这有很多原因,但它通常会随着应用程序复杂性的增加,给你带来很多麻烦。
相反,请先使用JPanel
并覆盖它的paintComponent
方法,确保先拨打super.paintComponent
。然后,只需将其添加到您想要使用的容器中。
有关详细信息,请查看Performing Custom Painting
答案 1 :(得分:0)
欢迎来到SO。您尝试提供一些背景信息很好。但是,在这种情况下,答案似乎只是: 您需要WindowConstants.EXIT_ON_CLOSE而不仅仅是EXIT_ON_CLOSE
答案 2 :(得分:0)
应该{{1}}请不要打电话给你的班级JFrame.EXIT_ON_CLOSE
,这只是搞砸了!