Java向现有值添加值(int)
所以我制作这个彩票游戏是为了练习,我几乎完成了(我是java的初学者,需要很多帮助才能做到这一点)。在游戏结束之前,我需要做的最后一件事是找到一种方法,让我的“银行”在每次玩游戏时都不会重置 这个游戏是一个彩票,每次你按下一个按钮,你就赢或输,这个金额应该被加到或从你的银行中减去。但它只是简单地取代了银行现有的资产。这是整个游戏的代码,下面是它的图片: TheLottery.javaJava向现有值添加值(int),java,int,double,addition,Java,Int,Double,Addition,所以我制作这个彩票游戏是为了练习,我几乎完成了(我是java的初学者,需要很多帮助才能做到这一点)。在游戏结束之前,我需要做的最后一件事是找到一种方法,让我的“银行”在每次玩游戏时都不会重置 这个游戏是一个彩票,每次你按下一个按钮,你就赢或输,这个金额应该被加到或从你的银行中减去。但它只是简单地取代了银行现有的资产。这是整个游戏的代码,下面是它的图片: TheLottery.java import java.awt.BorderLayout; import java.awt.Color; im
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.border.EtchedBorder;
public class TheLottery extends JFrame implements ActionListener {
/**
**author Samy
*/
JFrame frame = new JFrame("The Lottery");
JPanel mainPanel = new JPanel(new BorderLayout());
JPanel southPanel = new JPanel();
JPanel centerPanel = new JPanel();
JPanel northPanel = new JPanel();
JButton tip = new JButton("Tip");
JButton play = new JButton("Play");
JButton exit = new JButton("Exit");
JLabel label = new JLabel();
JLabel tableLabel = new JLabel();
private static final long serialVersionUID = 1L;
public void TheLottery() {
southPanel.add(tableLabel);
northPanel.add(tip);
northPanel.add(play);
northPanel.add(exit);
centerPanel.add(label);
mainPanel.add(southPanel, BorderLayout.SOUTH);
mainPanel.add(northPanel, BorderLayout.NORTH);
mainPanel.add(centerPanel, BorderLayout.CENTER);
tableLabel.setText("<html><center><font size=5 color='white'>The Realistic Lottery<br><br></font><font size=4 color='white'>Ticket Price: $25<br><br></font><font color='white'>300,000 to 1,000,000 - Loss<br>200,000 to 300,000 - $25<br>30,000 to 200,000 - $50<br>30,000 to 10,000 - $100<br>10,000 to 5,000 - $500<br>1000 to 5,000 - $1,000<br>100 to 1000 - $10,000<br>10 to 100 - $50,000<br>10 to 1 - $250,000<br> Less than 1 - $1,000,000</font><center></html>");
int width = 720;
int height = width/16*9;
frame.setSize(width,height);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setUndecorated(true);
frame.add(mainPanel);
southPanel.setBackground(new Color(0x222222));
centerPanel.setBackground(new Color(0x222222));
northPanel.setBackground(new Color(0x222222));
mainPanel.setBackground(new Color(0x222222));
mainPanel.setBorder(new EtchedBorder(new Color(0xAAAAAA),new Color(0x666666)));
play.addActionListener(this);
exit.addActionListener(this);
tip.setToolTipText("If you win big early, stop and never come back!");
play.setToolTipText("Click me to play the lottery!");
exit.setToolTipText("Click me to exit.");
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
Object action = e.getSource();
int bank = 0;
String win = null;
double lotteryChance = Math.random()*1000000;
if(action == play) {
if (lotteryChance > 300000) {
win = ("You lost! Better luck next time!");
bank -= 25;
} else if (lotteryChance < 300000 && lotteryChance > 200000) {
win = ("You've won $25!");
bank += 25;
} else if (lotteryChance < 200000 && lotteryChance > 30000) {
win = ("You've won $50!");
bank += 50;
} else if (lotteryChance < 30000 && lotteryChance > 10000) {
win = ("You've won $100!");
bank += 100;
} else if (lotteryChance < 10000 && lotteryChance > 5000) {
win = ("You've won $500!");
bank += 500;
} else if (lotteryChance < 5000 && lotteryChance > 1000) {
win = ("You've won $1,000!");
bank += 1000;
} else if (lotteryChance < 1000 && lotteryChance > 100) {
win = ("You've won $10,000!");
bank += 10000;
} else if (lotteryChance < 100 && lotteryChance > 10) {
win = ("You've won $50,000!");
bank += 50000;
} else if (lotteryChance < 10 && lotteryChance > 1) {
win = ("You've won $250,000!");
bank += 250000;
} else if (lotteryChance < 1 && lotteryChance > 0) {
win = ("YOU'VE WON THE JACKPOT OF $1,000,000!");
bank += 1000000;
} else {
win = ("Something went very wrong, the game has been reset.");
bank = 0;
}
System.out.println("Your number is: "+lotteryChance);
System.out.println(win);
}
if(action == exit) {
System.exit(1);
}
label.setText("<html><center><font color='white' size=5>Bank: $"+bank+"<br></font><font color='white'>Your number is: "+lotteryChance+"<br><br>"+win+"</font></center> </html>");
}
public static void main(String[] args) {
TheLottery n = new TheLottery();
n.TheLottery();
}
}
导入java.awt.BorderLayout;
导入java.awt.Color;
导入java.awt.Dimension;
导入java.awt.FlowLayout;
导入java.awt.HeadlessException;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入javax.swing.AbstractButton;
导入javax.swing.JButton;
导入javax.swing.JLabel;
导入javax.swing.JFrame;
导入javax.swing.JPanel;
导入javax.swing.SwingConstants;
导入javax.swing.border.EtchedBorder;
公共类TheLottery扩展了JFrame,实现了ActionListener{
/**
**作家萨米
*/
JFrame=新的JFrame(“彩票”);
JPanel mainPanel=newjpanel(newborderlayout());
JPanel southPanel=新的JPanel();
JPanel centerPanel=新的JPanel();
JPanel northPanel=新的JPanel();
JButton tip=新JButton(“tip”);
JButton play=新JButton(“play”);
JButton exit=新JButton(“exit”);
JLabel标签=新的JLabel();
JLabel tableLabel=新的JLabel();
私有静态最终长serialVersionUID=1L;
公共厕所{
添加(表格标签);
添加(提示);
添加(播放);
添加(退出);
添加(标签);
添加(southPanel,BorderLayout.SOUTH);
添加(northPanel,BorderLayout.NORTH);
主面板。添加(中心面板、边框布局。中心);
tableLabel.setText(“现实彩票
票价:25
30万至100万美元-亏损
20万至30万美元-25
3万至20万美元-50
3万至10万至10万至10万至25万美元-100万美元
10000至5000美元-500美元
1000至1000美元
100至1000美元-10000美元
10至100美元-5万美元
10至1万至25万美元
少于1万至100万美元”);
整数宽度=720;
内部高度=宽度/16*9;
框架尺寸(宽度、高度);
frame.setresizeable(false);
frame.setLocationRelativeTo(空);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
框架。设置未装饰(真实);
添加框架(主面板);
南面板。立根背景(新颜色(0x22222));
中心面板.立根背景(新颜色(0x22222));
northPanel.setBackground(新颜色(0x22222));
主面板.立根背景(新颜色(0x22222));
主面板。设置顺序(新蚀刻边框(新颜色(0xAAAAA)、新颜色(0x666666));
play.addActionListener(这个);
exit.addActionListener(this);
setToolTipText(“如果你很早就赢了,停下来再也不回来了!”);
play.setToolTipText(“单击我玩彩票!”);
setToolTipText(“单击我退出”);
frame.setVisible(true);
}
@凌驾
已执行的公共无效操作(操作事件e){
对象操作=e.getSource();
国际银行=0;
字符串win=null;
double lotteryChance=Math.random()*1000000;
如果(动作==播放){
如果(乐透机会>300000){
赢=(“你输了!下次好运!”);
银行-=25;
}否则如果(lotteryChance<300000&&lotteryChance>200000){
赢=(“你赢了25美元!”);
银行+=25;
}否则如果(lotteryChance<200000&&lotteryChance>30000){
赢=(“你赢了50美元!”);
银行+=50;
}否则,如果(乐透机会<30000&&乐透机会>10000){
赢=(“你赢了100美元!”);
银行+=100;
}否则,如果(乐透机会<10000&&乐透机会>5000){
赢=(“你赢了500美元!”);
银行+=500;
}否则,如果(乐透几率<5000&&乐透几率>1000){
赢=(“你赢了1000美元!”);
银行+=1000;
}否则如果(乐透几率<1000&&乐透几率>100){
赢=(“你赢了10000美元!”);
银行+=10000;
}否则,如果(乐透几率<100&&乐透几率>10){
赢=(“你赢了50000美元!”);
银行+=50000;
}else if(lotteryChance<10&&lotteryChance>1){
赢=(“你赢了250000美元!”);
银行+=250000;
}else if(lotteryChance<1&&lotteryChance>0){
赢=(“你赢了100万美元的头奖!”);
银行+=1000000;
}否则{
win=(“出现了严重问题,游戏已重置。”);
bank=0;
}
System.out.println(“您的号码是:“+lotteryChance”);
System.out.println(win);
}
如果(操作==退出){
系统出口(1);
}
label.setText(“银行:$”+Bank+”
您的号码是:“+lotteryChance+”
“+win+”);
}
公共静态void main(字符串[]args){
TheLottery n=新的TheLottery();
n、 逻辑推理;
}
}
银行变量的范围是actionPerformed
方法。每次运行此方法时,它都设置为0
如果希望在调用之间保留该值,请将其设置为成员变量,如frame
is
顺便说一句,我想你不需要两个JFrame。通常一个就足够了。但每次按下按钮时,您都会将银行声明为0。您需要增加实例变量的作用域(将其移到actionPerformed方法之外),这样会更好。@ErikPragt也许它应该是一个答案而不是注释。;)哦,就这么简单,把它放在课堂上,而不是任何空白处!我试图让它在我的void中保持未定义,但后来我得到了一个错误,所以我试图通过放置0来修复它,这就是为什么我有这个问题,但现在它工作了。谢谢你,伙计!