如何将标签从使用值单击鼠标引用到操作执行.(Java,NetBeans)



https://i.stack.imgur.com/5bPS6.jpg

因此,我一直在尝试用java编写此老虎机游戏,并且最近在尝试使用此解决方案的方法上遇到了问题。游戏的运作方式如下:每次点击名为x1的标签时,您都会投资1个比特币,并且有更高的机会赢得并赢得1个比特币。点击标签 X3,您可以获得中等获胜的机会(您赢得 3 个比特币(,如果点击标签 X5,您将获得赢得 5 个比特币的最低机会。1单击这些标签启用按钮"GO WIN!",稍后您必须单击该按钮才能运行所有内容。目前,我对编程它没有任何问题,让你在一定的机会下只赢得 1 个比特币,尽管其他两个标签是问题所在。有什么建议吗?

我知道 jframe 看起来很糟糕,尽管这只是我的练习:)

到目前为止的代码:

   // TODO add your handling code here:
    btnWinLose.setEnabled(false);
    int slot1 = (int)(4*Math.random()+0);
    int slot2 = (int)(4*Math.random()+0); 
    int slot3 = (int)(4*Math.random()+0);
    lbl_1.setText(String.valueOf(slot1));
    lbl_2.setText(String.valueOf(slot2));
    lbl_3.setText(String.valueOf(slot3));
    if(slot1 == slot2 ){
        start = start +1;
        lbl_Coin.setText(start + " COINS");
    }
    else{
    start = start - 1;
    lbl_Coin.setText(start + " COINS");
    }
    if(start == 0){
        int n = JOptionPane.showConfirmDialog(
                this, 
                "No coins left, start again?"+  
                JOptionPane.YES_NO_OPTION);
     if(n == 0){
         start=10;
         lbl_Coin.setText(String.valueOf(start + " COINS"));
     }
     else{
         System.exit(0);
     }
    }   

确定单击了哪个标签的一种方法是在每个标签上使用MouseListener。请参阅此问题作为参考。因此,让您的 GUI 类实现MouseListener并执行以下操作:

public class myGUI extends JFrame implements ActionListener, MouseListener{
 private JLabel x1,x2,x3;
 public myGUI(){
   // do constructor stuff
   x1 = new JLabel("x1");
   x2 = new JLabel("x2");
   x3 = new JLabel("x3");
  x1.addMouseListener(this);
  x2.addMouseListener(this);
  x3.addMouseListener(this);
 }
  // other methods
  @Override
  public void mouseClicked(MouseEvent e) {
        if(e.getSource().equals(x1)){
          // do x1 stuff
        }
        else if(e.getSource().equals(x2)){
          // do x2 stuff
        }
        else if(e.getSource().equals(x3)){
          // do x3 stuff
        }
  }
}

最新更新