java - 尝试为 Minesweeper 创建 JButton 网格,但直到 MouseOver 网格才会显示
问题描述
所以我有一个使用 SWING 的扫雷器,它不会显示单个框,直到您将鼠标悬停在它们上方。这不是我喜欢的样子。有人可以帮忙吗?我正在研究网格生成。涉及两个类:Field(JFrame)和Tile(JButton)。
字段类
public class Field extends JFrame {
private final JPanel panel;
private final Tile[][] field;
private final int numRows, numCols;
private final int numMines;
public Field(int numRows, int numCols, int numMines) {
super("MineSweeper");
this.numMines = numMines;
this.numRows = numRows;
this.numCols = numCols;
field = new Tile[numRows][numCols];
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(540, 600);
setResizable(false);
panel = new JPanel();
panel.setLayout(new GridLayout(numRows, numCols));
for(int y=0; y<numRows; y++) {
for(int x=0; x<numCols; x++) {
JButton t = new Tile(x, y);
panel.add(t);
field[y][x] = (Tile)t;
}
}
add(panel);
setVisible(true);
}
}
public class Tile extends JButton implements MouseListener{
private final int xPos, yPos;
private int numMinesAround;
private boolean isMine, isFlagged;
public Tile(int xPos, int yPos) {
this.xPos = xPos;
this.yPos = yPos;
numMinesAround = 0;
isMine = false;
isFlagged = false;
}
}
这只是试图让 JFrame 和 JButton 框工作。
解决方案
推荐阅读
- javascript - 内部 DIV 滚动/滑动到它们所在的 DIV 的顶部
- sql - 如何采用按单独列排序的 DISTINCT ON 子查询并使其快速?
- java - 无法对mysql数据库进行记录,数据从html和js文件传递到java类
- ios - ImagePicker 和分配给 ImageView 的问题
- wordpress - 如何按元值订购我的 WP 查询,并且只从不同的元中获取某些值?
- vue.js - 在 Vue-CLI 中使用 PleaseWait.js 加载屏幕
- python - 如何在 BaggingClassifier 中调整 SVM 的参数
- reporting-services - 带有新条目的 SSRS 订阅电子邮件
- javascript - 将其中包含数字数组的字符串转换为实际值
- javascript - 如何改进 div 的这种 Javascript 切换?