- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在尝试编写一个内存/配对游戏。我在尝试弄清楚如何检查是否已单击同一张卡并且用户找到匹配项时遇到问题。我知道我需要存储第一次点击的值并将其与第二次点击进行比较,但仍然不确定如何实际执行。
考虑这段代码,我重新创建了一个更简单的游戏版本,您可以在下面实际运行它:
class start {
JToggleButton DisplayCards[][] = new JToggleButton[4][4];
Shuffle shuffle = new Shuffle();
void main() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 600);
int y = 20;
int x = 60;
for (int i = 0; i < DisplayCards.length; ++i) {
for (int j = 0; j < DisplayCards[i].length; ++j) {
DisplayCards[i][j] = new JToggleButton("Click Me!");
DisplayCards[i][j].setBounds(x, y, 90, 126);
y = y + 135;
if (y >= 540) {
y = 20;
x = x + 120;
}
frame.add(DisplayCards[i][j]);
DisplayCards[i][j].addActionListener(new Clicked(i, j, shuffle));
}
}
frame.setLayout(null);
frame.setVisible(true);
}
}
打乱字母的类:
class Shuffle {
String[][] cards = {
{"A", "B", "C", "D"},
{"E", "F", "G", "H"},
{"A", "B", "C", "D"},
{"E", "F", "G", "H"}
};
public void random() {
for (int i = 0; i < cards.length; i++) {
for (int j = 0; j < cards[i].length; j++) {
int i1 = (int) (Math.random() * cards.length);
int j1 = (int) (Math.random() * cards[i].length);
String temp = cards[i][j];
cards[i][j] = cards[i1][j1];
cards[i1][j1] = temp;
}
}
}
}
ActionListener 类:
class Clicked implements ActionListener {
Shuffle shuffle;
JToggleButton tBtn;
private int i;
private int j;
public Clicked(int i, int j, Shuffle shuffle) {
this.i = i;
this.j = j;
this.shuffle = shuffle;
}
public void actionPerformed(ActionEvent e) {
tBtn = (JToggleButton) e.getSource();
if (tBtn.isSelected()) {
tBtn.setText(shuffle.cards[i][j]);
} else {
tBtn.setText("Click Me!");
}
}
}
最佳答案
您需要存储选择的值并比较它们。这是一个粗略的示例。
我将你的主类命名为PuzzleGame
。
在主类中我放入了两个静态值。
static String first;
static boolean state = false;
然后我按如下方式修改了您的 Action 监听器。
public void actionPerformed(ActionEvent e) {
tBtn = (JToggleButton) e.getSource();
if (tBtn.isSelected()) {
tBtn.setText(shuffle.cards[i][j]);
if (!PuzzleGame.state) {
PuzzleGame.first = shuffle.cards[i][j];
System.out.println(PuzzleGame.first);
PuzzleGame.state = true;
} else {
if (PuzzleGame.first.equals(shuffle.cards[i][j])) {
System.out.println("Correct!");
}
}
} else {
tBtn.setText("Click Me!");
}
}
第一次通过时,state
为 false
,因此设置了 first
。第二次通过时,state
为 true
,因此也会与 first
设置的内容进行比较。
在这样的游戏中,您不应该使用静态值。我这样做是因为很容易演示该技术。
您还应该重置错误答案的值和状态,并禁用正确答案的按钮。
最后一个提示。
frame.setLocationRelativeTo(null); // centers the frame on screen.
关于java - 从 JToggleButton 检索信息时遇到问题?(匹配游戏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59794288/
我实现了以下 JDialog: [ jToggleButton1 ] [ jToggleButton2 ] [ jToggleButton2 ] 我希望当用户按下(-toggles-)
我可以设置按钮的颜色,但是一旦按下按钮,它的颜色就是蓝色 - 标准。我想变黑。我该如何更改它? 以下是当前代码: public JPanel gameBoard(){ JPan
好的,所以我做了一个 JToggleButton: JToggleButton button = new JToggleButton(new ImageIcon(features[i].getImag
正如我之前在一篇文章中提到的,我正在将我的程序移植到 Java,以使其可供 Mac OS 和 Linux 用户使用。 在程序开始时,我想使用以下代码检查 adb 是否安装到系统中: private v
我有一个 JToggleButton,不在一个组中,如果按下它,我希望能够取消选择如果我按下另一个 JButton,它就会出现。 我尝试过使用: toggleButton.setSelected(fa
好吧,标题说明了一切。 在 Netbeans 中,我可以更改 JToggleButton 的字体,但只有粗体和斜体选项,但没有下划线文本。我想这不是严格意义上的字体属性,但我不知道该怎么做。 最佳答案
我正在尝试使用通常没有边框的 JToggleButton 按钮,并且只显示我提供的图标。但是当它们被点击时,我希望显示选定的按钮。 我知道通过使用 setLayout(null)。初始状态有效,但当我
当在 Windows 7 JToolBar 中使用时,JToggleButton 有时会截断其标签文本。 请参阅下面代码中的示例。以大写字母 'W' 开头的切换按钮将被截断;以空格(甚至小写 'w')
我正在尝试创建一个有 12 个切换按钮的内存游戏。如果您单击一个按钮,图标就会改变。如果两个图标匹配,则两个图标都会翻转。但是,如果它们不匹配,则计时器启动 1.5 秒,然后将两个切换按钮切换回主图标
我需要请帮忙。我有一个 Java 代码,其中有一个小 GUI。我不能点击按钮两次。我只能激活 while 循环,但无法停用它。 这是我的代码: import java.awt.Dimension; i
所以我有三个按钮,比如说 1、2 和 3。我希望,当我单击按钮1、按钮2和按钮3时取消选择。之后,当我单击按钮2时,我希望取消选择按钮1和按钮3。按钮3 也是如此。 基本上,当我单击一个按钮时,我希望
我想创建 100 个 JToggleButtons 并使用 for 循环来完成并将它们保存在链接列表中。然后以网格袋布局显示它们。 ArrayList buttons = new ArrayList(
我对此有点挣扎。在对 Google 进行研究后,我创建了以下计时器例程,该例程在调用时效果良好 // play move method public static void playMove() {
如何实现三态切换按钮?我正在使用 eclipse 和 windowBuilder,并且正在编写一个必须具有 3 态按钮的程序。我使用了 JToggleButtons 和它们的两个状态,但不能实现第三个
我有几个切换按钮可以为文本添加样式: JToggleButton boldButton = new JToggleButton("Bold"); boldButton.addActio
我正在尝试用 Java 编写简单的 vector 图形编辑器,但被 GUI 卡住了……我有 2 个 JPanel:第一个用于“ Canvas 区域”,第二个用于按钮。 Canvas 区域是一个 Sin
我有一个使用 Swing 作为 UI 的应用程序。我想要一个按钮来切换应用程序正在使用的通信类型。我想使用切换按钮来标识所选的通信类型。 我的问题是我不希望按钮的颜色在单击后发生变化。目前该按钮看起来
我创建了一个 JToggleButton,当它被选中时会显示图像。除了图像不以按钮为中心外,一切都完美无缺。图像的左上角位于按钮的中心点,然后图像向下并向按钮的右下角伸出。 JToggleButton
我正在尝试在 JToolBar 中对齐 JToggleButton。我希望按钮垂直向左对齐。我的代码如下: JToolBar toolbar = new JToolBar(); toolbar.set
我有一个 JTogglebuttons 数组和一个 JButton,当按下 JButton 时,它会启动一个循环,迭代所有 JTogglebuttons 以查看它是否被按下,如果是,则应使其禁用/不可
我是一名优秀的程序员,十分优秀!