所以我一直在尝试用java编写这个老虎机游戏的程序,最近我遇到了一些问题,我试图解决这个问题。这个游戏的工作原理如下:每次你点击名为x1的标签,你就投资了1个比特币,并有更高的机会赢得1个比特币。点击label x3,你会得到一个中等的获胜机会(你赢得3个比特币),如果点击label x5,你赢得5个比特币的机会最低。单击这些标签将启用"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);
}
} 发布于 2018-03-02 16:31:29
确定单击了哪个标签的一种方法是在每个标签上使用MouseListener。请参阅this question作为参考。因此,让您的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
}
}
}https://stackoverflow.com/questions/49058222
复制相似问题