非常基本的老虎机(检查三个标签是否相等)Java

时间:2015-03-08 20:07:15

标签: java if-statement radio-button jlabel

以下是该计划的失败:

  1. 制作了三个JLable。
  2. 对应标签制作三个按钮。
  3. 当按下某个按钮时,它会调用一个随机生成器,该发生器会选择0-9之间的数字。
  4. 根据按下的按钮,相应的JLabel将更改为生成的数字。
  5. 一旦所有三个数字(在每个标签中)相同,它会自动将主标签更改为" You Win!"。
  6. 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);
     }
    }
    

3 个答案:

答案 0 :(得分:0)

似乎对我有用..

我刚刚编译并运行代码和,当所有三个代码都相同时,如果成功的话:

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");
   }

奥雷尔,究竟是什么问题?

答案 1 :(得分:0)

您可以这样做:

if (label1.text.equals(l2.text) && label1.text.equals(l3.text)) doSomething();

答案 2 :(得分:0)

有两种方法可以检查玩家是否获胜。

第一种做法:

检查所有3个标签上的文字是否相同。

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");