Я новичок в Java и пытаюсь создать программу, которая просит угадать случайное число от 1 до 77. Как я могу сделать так, чтобы цикл while в этом коде запускался только тогда, когда ответ был предоставлен в JField, и кнопка была нажата? Прямо сейчас эта программа просто пропускает цикл while при запуске и просто отображает сообщение о потере.
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.Dimension;
public class NumberGame {
private static int guess = 0;
private static int presses = 0;
public static void main(String[] args) {
JFrame window = new JFrame("Number Game");
window.setLayout(new BorderLayout());
JPanel topPanel = new JPanel();
JPanel bottomPanel = new JPanel();
JPanel centerPanel = new JPanel();
JLabel topLabel = new JLabel("Pick numbers from 1 to 77.");
topPanel.add(topLabel, BorderLayout.NORTH);
JTextField field = new JTextField(10);
field.setPreferredSize(new Dimension(80,20));
topPanel.add(field, BorderLayout.CENTER);
JButton button = new JButton("Guess");
button.addActionListener(e -> {
if (field.getText() != "") {
guess = Integer.parseInt(field.getText());
field.setText("");
presses ++;
}
});
button.setPreferredSize(new Dimension(100,40));
centerPanel.add(button, BorderLayout.NORTH);
JLabel bottomLabel = new JLabel("Enter your guess");
bottomPanel.setLayout(new BorderLayout());
bottomPanel.add(bottomLabel, BorderLayout.CENTER);
//Generate a random number using the math class
int num = (int)(77*Math.random())+1;
//System.out.println(num);
int guesses = 5;
guess = -1;
presses = 0;
window.add(topPanel, BorderLayout.NORTH);
window.add(bottomPanel, BorderLayout.SOUTH);
window.add(centerPanel, BorderLayout.CENTER);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setSize(300,200);
window.setVisible(true);
while (guess != num && guesses > 0 && presses == (5-guesses)) {
if (guess > num && guess != -1) {
bottomLabel.setText("Skill issue, too big. Try again. ");
}else if (guess < num && guess != -1){
bottomLabel.setText("Ha ha, too small. Try again. ");
}
guesses --;
presses ++;
}
if (guesses > 0) {
bottomLabel.setText("GG! You won! You had " + guesses + " guesses remaining.");
}else {
bottomLabel.setText("lol ur bad you lose. The number was " + num + ".");
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... be-pressed
Как я могу заставить цикл while ждать нажатия JButton? ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение