【发布时间】:2018-10-15 11:02:39
【问题描述】:
我正在尝试创建一个小游戏作为一个项目来帮助自己学习如何编码。基本上我想有2个按钮。其中一个将生成一个新的随机数,另一个将允许您猜测该数字。我遇到的错误是我无法创建一个 Actionlistener,它会在单击按钮时生成一个新数字,因为它不允许我在 Lambda 表达式本身之外更改 int。
非常感谢任何帮助!
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
/**
* Created by Alex on 10/15/2018.
*/
public class NumberGame
{
public static void main(String[] args) {
int gamesNumber = 0;
int myNumber;
JFrame gameGUI = new JFrame("Number guess game");
gameGUI.setSize(400,400);
gameGUI.setVisible(true);
gameGUI.setLayout(null);
gameGUI.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//Create components for GUI
JLabel AmIRight = new JLabel();
JLabel generateNumber = new JLabel();
JButton chooseNumber = new JButton("Choose");
JButton generateNumber2 = new JButton("Generate");
generateNumber2.addActionListener(e -> {
Random rand = new Random();
int number = rand.nextInt(10) + 1;
gamesNumber = number;
System.out.println(gamesNumber);
});
//Calling Methods
//gamesNumber = GenerateRandomNumber();
//Adding components to GUI
gameGUI.add(AmIRight);
gameGUI.add(chooseNumber);
gameGUI.add(generateNumber);
gameGUI.add(generateNumber2);
//Give components properties
AmIRight.setBounds(40,100,300,300);
AmIRight.setText("Push the button below to choose a number to guess!");
generateNumber.setBounds(60,-100,300,300);
generateNumber.setText("Push the button below to Generate a number!");
chooseNumber.setBounds(130,270,100,50);
generateNumber2.setBounds(130,70,100,50);
}
}
【问题讨论】: