非常基本的老虎机(检查三个标签是否相等)Java
VERY basic Slot Machine (checking to see if three labels are equal) Java
这是程序的 运行 下载:
- 制作了三个 JLable。
- 根据标签制作三个按钮
- 当按下一个按钮时,它会调用一个随机生成器,该生成器会在 0-9 之间选择一个数字。
- 根据按下的按钮,相应的 JLabel 会更改为生成的数字。
- 一旦所有三个数字(在每个标签中)都相同,它会自动将主标签更改为 "You Win!"。
5 号是我遇到问题的部分。我似乎无法比较或判断三者何时相同。如果有人能指出正确的方向或提供任何帮助,我会很高兴。
这是动作侦听器的代码
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Random;
public class SlotMachinePanel extends JPanel
{
private JRadioButton button1, button2, button3;
private JLabel instr, first, second, third;
private int check1, check2, check3;
//-----------------------------------------------------------------
// Constructor: Sets up the GUI.
//-----------------------------------------------------------------
public SlotMachinePanel()
{
// First Panel
instr = new JLabel ("Please spin a wheel");
JPanel one = new JPanel();
one.setPreferredSize (new Dimension(200,50));
one.setBackground(Color.green);
one.add(instr);
// Second Panel
button1 = new JRadioButton("Spin me!",false);
first = new JLabel ("1");
JPanel two = new JPanel();
two.setPreferredSize (new Dimension(200,50));
two.setBackground(Color.cyan);
two.add(first);
two.add(button1);
// Third Panel
button2 = new JRadioButton("Spin me!",false);
second = new JLabel ("2");
JPanel three = new JPanel();
three.setPreferredSize (new Dimension(200,50));
three.setBackground(Color.green);
three.add(second);
three.add(button2);
// Fourth Panel
button3 = new JRadioButton("Spin me!",false);
third = new JLabel ("3");
JPanel four = new JPanel();
four.setPreferredSize (new Dimension(200,50));
four.setBackground(Color.cyan);
four.add(third);
four.add(button3);
ButtonGroup group = new ButtonGroup();
group.add(button1);
group.add(button2);
group.add(button3);
button1.addActionListener(new ButtonListener());
button2.addActionListener(new ButtonListener());
button3.addActionListener(new ButtonListener());
add(one);
add(two);
add(three);
add(four);
setPreferredSize(new Dimension(200, 210));
setBackground(Color.green);
}
//*****************************************************************
// listener for button pushes
//*****************************************************************
private class ButtonListener implements ActionListener
{
//--------------------------------------------------------------
//
//--------------------------------------------------------------
public void actionPerformed(ActionEvent event)
{
int num;
Random generator1 = new Random();
num = generator1.nextInt(9);
Object source = event.getSource();
if(source == button1){
check1 = num;
first.setText(Integer.toString(num));
}
if(source == button2){
check2 = num;
second.setText(Integer.toString(num));
}
if(source == button3){
check3 = num;
third.setText(Integer.toString(num));
}
if((check1 == check2) && (check2 == check3)){
instr.setText("You Win");
}
}
}
}
它 运行 使用这个
import javax.swing.JFrame;
import java.awt.*;
import javax.swing.*;
public class SlotMachine
{
//-----------------------------------------------------------------
// Creates the main program frame.
//-----------------------------------------------------------------
public static void main(String[] args)
{
JFrame frame = new JFrame("Slot Machine");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new SlotMachinePanel());
frame.pack();
frame.setVisible(true);
}
}
似乎对我有用..
我刚刚编译 运行 代码,当所有三个具有相同的数字时,如果成功:
if((check1 == check2) && (check2 == check3)){
并且 jlabel instr 显示消息:
You Win
如果您想添加另一条消息,其中三个消息并非完全相同,请使用以下代码
if((check1 == check2) && (check2 == check3)){
instr.setText("You Win");
}
else {
instr.setText("You Did Not Win Yet");
}
或者,到底是什么问题?
你可以这样做:
if (label1.text.equals(l2.text) && label1.text.equals(l3.text)) doSomething();
有两种方法可以检查玩家是否获胜。
第一种做法:
检查三个标签上的文字是否相同。
if (label1.getText().equals(label2.getText()) && label2.getText().equals(label3.getText()))
instr.setText("Win!");
点击按钮生成随机数时,将以上代码放在监听器中即可。这样,每次点击按钮,它都会检查是否获胜。
第二种做法:
每次生成一个随机数,您可以将该数字存储在 3 个 int
变量中。比较 int
变量而不是 3 个标签的文本。
if ((val1 == val2) && (val2 == val3))
instr.setText("Win");
这是程序的 运行 下载:
- 制作了三个 JLable。
- 根据标签制作三个按钮
- 当按下一个按钮时,它会调用一个随机生成器,该生成器会在 0-9 之间选择一个数字。
- 根据按下的按钮,相应的 JLabel 会更改为生成的数字。
- 一旦所有三个数字(在每个标签中)都相同,它会自动将主标签更改为 "You Win!"。
5 号是我遇到问题的部分。我似乎无法比较或判断三者何时相同。如果有人能指出正确的方向或提供任何帮助,我会很高兴。
这是动作侦听器的代码
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Random;
public class SlotMachinePanel extends JPanel
{
private JRadioButton button1, button2, button3;
private JLabel instr, first, second, third;
private int check1, check2, check3;
//-----------------------------------------------------------------
// Constructor: Sets up the GUI.
//-----------------------------------------------------------------
public SlotMachinePanel()
{
// First Panel
instr = new JLabel ("Please spin a wheel");
JPanel one = new JPanel();
one.setPreferredSize (new Dimension(200,50));
one.setBackground(Color.green);
one.add(instr);
// Second Panel
button1 = new JRadioButton("Spin me!",false);
first = new JLabel ("1");
JPanel two = new JPanel();
two.setPreferredSize (new Dimension(200,50));
two.setBackground(Color.cyan);
two.add(first);
two.add(button1);
// Third Panel
button2 = new JRadioButton("Spin me!",false);
second = new JLabel ("2");
JPanel three = new JPanel();
three.setPreferredSize (new Dimension(200,50));
three.setBackground(Color.green);
three.add(second);
three.add(button2);
// Fourth Panel
button3 = new JRadioButton("Spin me!",false);
third = new JLabel ("3");
JPanel four = new JPanel();
four.setPreferredSize (new Dimension(200,50));
four.setBackground(Color.cyan);
four.add(third);
four.add(button3);
ButtonGroup group = new ButtonGroup();
group.add(button1);
group.add(button2);
group.add(button3);
button1.addActionListener(new ButtonListener());
button2.addActionListener(new ButtonListener());
button3.addActionListener(new ButtonListener());
add(one);
add(two);
add(three);
add(four);
setPreferredSize(new Dimension(200, 210));
setBackground(Color.green);
}
//*****************************************************************
// listener for button pushes
//*****************************************************************
private class ButtonListener implements ActionListener
{
//--------------------------------------------------------------
//
//--------------------------------------------------------------
public void actionPerformed(ActionEvent event)
{
int num;
Random generator1 = new Random();
num = generator1.nextInt(9);
Object source = event.getSource();
if(source == button1){
check1 = num;
first.setText(Integer.toString(num));
}
if(source == button2){
check2 = num;
second.setText(Integer.toString(num));
}
if(source == button3){
check3 = num;
third.setText(Integer.toString(num));
}
if((check1 == check2) && (check2 == check3)){
instr.setText("You Win");
}
}
}
}
它 运行 使用这个
import javax.swing.JFrame;
import java.awt.*;
import javax.swing.*;
public class SlotMachine
{
//-----------------------------------------------------------------
// Creates the main program frame.
//-----------------------------------------------------------------
public static void main(String[] args)
{
JFrame frame = new JFrame("Slot Machine");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new SlotMachinePanel());
frame.pack();
frame.setVisible(true);
}
}
似乎对我有用..
我刚刚编译 运行 代码,当所有三个具有相同的数字时,如果成功:
if((check1 == check2) && (check2 == check3)){
并且 jlabel instr 显示消息:
You Win
如果您想添加另一条消息,其中三个消息并非完全相同,请使用以下代码
if((check1 == check2) && (check2 == check3)){
instr.setText("You Win");
}
else {
instr.setText("You Did Not Win Yet");
}
或者,到底是什么问题?
你可以这样做:
if (label1.text.equals(l2.text) && label1.text.equals(l3.text)) doSomething();
有两种方法可以检查玩家是否获胜。
第一种做法:
检查三个标签上的文字是否相同。
if (label1.getText().equals(label2.getText()) && label2.getText().equals(label3.getText()))
instr.setText("Win!");
点击按钮生成随机数时,将以上代码放在监听器中即可。这样,每次点击按钮,它都会检查是否获胜。
第二种做法:
每次生成一个随机数,您可以将该数字存储在 3 个 int
变量中。比较 int
变量而不是 3 个标签的文本。
if ((val1 == val2) && (val2 == val3))
instr.setText("Win");