Java向现有值添加值(int)

Java向现有值添加值(int),java,int,double,addition,Java,Int,Double,Addition,所以我制作这个彩票游戏是为了练习,我几乎完成了(我是java的初学者,需要很多帮助才能做到这一点)。在游戏结束之前,我需要做的最后一件事是找到一种方法,让我的“银行”在每次玩游戏时都不会重置 这个游戏是一个彩票,每次你按下一个按钮,你就赢或输,这个金额应该被加到或从你的银行中减去。但它只是简单地取代了银行现有的资产。这是整个游戏的代码,下面是它的图片: TheLottery.java import java.awt.BorderLayout; import java.awt.Color; im

所以我制作这个彩票游戏是为了练习,我几乎完成了(我是java的初学者,需要很多帮助才能做到这一点)。在游戏结束之前,我需要做的最后一件事是找到一种方法,让我的“银行”在每次玩游戏时都不会重置

这个游戏是一个彩票,每次你按下一个按钮,你就赢或输,这个金额应该被加到或从你的银行中减去。但它只是简单地取代了银行现有的资产。这是整个游戏的代码,下面是它的图片:

TheLottery.java

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来修复它,这就是为什么我有这个问题,但现在它工作了。谢谢你,伙计!