Я пытаюсь сделать игру, и в указанной игре есть 21 палочка, и каждый человек по очереди принимает 1-4 палочки, пока не осталось никаких палочек, если вы не можете больше палочки ты проиграл. Я успешно сделал эту программу в eclipse, но теперь я хочу добавить в нее графический интерфейс, поэтому мне нужно изменить код. Этот код не является полным, но он сбрасывается всякий раз, когда я нажимаю кнопку Go, которая является моим листом actionListener. Я бы набрал номер в текстовое поле, нажмите «идти», и он просто сработает. Как я могу это исправить?Базовая программа GUI java в Eclipse продолжает сбой
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Sticks extends JFrame {
JButton Go;
JTextField tf1, tf2;
static JTextField sttf;
JLabel startTake;
static JLabel errorTake;
JLabel uTake;
JLabel compTake;
public Sticks() {
setLayout(new GridLayout(5, 2, 5, 5));
startTake = new JLabel("How many sticks do you want to take? (1-4)");
add(startTake);
sttf = new JTextField();
add(sttf);
errorTake = new JLabel("Hello");
add(errorTake);
Go = new JButton("Go");
add(Go);
uTake = new JLabel("");
add(uTake);
compTake = new JLabel("");
add(compTake);
// tf1 = new JTextField();
// add(tf1);
// TakeP = new JLabel("One stick taken");
// add(TakeP);
event e = new event();
Go.addActionListener(e);
}
public static class event implements ActionListener {
public void actionPerformed(ActionEvent e) {
int numSticks = 21;
int numToTake = 0;
int randomNum = 0;
while (numSticks > 0) {
try {
int num = (int) (Double.parseDouble(sttf.getText()));
int NumSticks = numSticks - num;
errorTake.setText("There are: " + numSticks + " left");
Robot Rob = new Robot();
numToTake = (int)Math.random() * 4 + 1;
errorTake.setText("There are: " + numSticks + " left");
}
catch (Exception ex) {
ex.printStackTrace();;errorTake.setText("There is a problem");
}
}
}
}
public static void main(String[] args) {
Sticks gui = new Sticks();
gui.setDefaultCloseOperation(EXIT_ON_CLOSE);
gui.setVisible(true);
gui.setSize(600, 200);
gui.setTitle("Nice Game");
}
}
Изменить 'catch (Exception exx) {errorTake.setText (" Только числа! ");' To 'catch (Exception exx) {exx.printStackTrace(); errorTake.setText ("Только числа!"); 'Затем копировать/вставлять вывод исключений. –
Я не получаю stackTrace –