【问题标题】:Adding an int per click (java)每次点击添加一个 int (java)
【发布时间】:2014-09-29 21:37:09
【问题描述】:

我正在用 java 制作“假病毒”。当您运行它时,会弹出一个名为“您的计算机有病毒”的窗口,并且该窗口有一个按钮,上面写着“您的计算机有(1)病毒。单击此处卸载它们”但是当您单击它时,会弹出另一个窗口。但我希望每次单击它时,“病毒”的数量都会增加 1。 (例如,单击按钮后弹出的第二个窗口显示“您的计算机有 (2) 个病毒”)。我试图添加它,但它没有工作。 (对不起我糟糕的语法)。这是我的代码:

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.Timer;


    public class FirstWindow extends JFrame {

    int virusAmount = 1;
    private static final long serialVersionUID = 1L;

    public FirstWindow(){
        super("Your computer has a virus");
        setSize(400, 75);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        JPanel p = new JPanel();
        JButton b = new JButton("Your computer has (" + virusAmount++ + ") virus(es). Click here to uninstall them.");
        b.addActionListener(new ActionListener() {          

            public void actionPerformed(ActionEvent e) {
                FirstWindow f2 = new FirstWindow();
                f2.setVisible(true);
            }
        });     
        p.add(b);       
        add(p); 
     }  
   }

【问题讨论】:

  • 尝试阅读 Java 的静态变量。
  • 看起来你真的在制造病毒 :)

标签: java swing int jbutton new-window


【解决方案1】:

只需在构造函数中定义即可:

public FirstWindow(int i){}

完整示例:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class FirstWindow extends JFrame {
    int virusAmount;
    private static final long serialVersionUID = 1L;
    public FirstWindow(int i) {
        virusAmount = i;
        setSize(400, 75);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        JPanel p = new JPanel();
        JButton b;
        if(virusAmount == 1){
            b = new JButton("Your computer has a virus");
        }
        else{
            b = new JButton("Your computer has (" + virusAmount + ") virus(es). Click here to uninstall them.");
        }
        b.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                FirstWindow f2 = new FirstWindow(virusAmount+1);
                f2.setVisible(true);
            }
        });
        p.add(b);
        add(p);
    }
}



public class Main {
    public static void main(String[] args) {
        FirstWindow fw = new FirstWindow(1);
        fw.setVisible(true);
    }
}

【讨论】:

  • @user3915853,改成virusAmount(答案已更新)。
猜你喜欢
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-07
  • 1970-01-01
相关资源
最近更新 更多