Sono solo 6 - 7 settimane nell'apprendimento di Java, quindi mi scuso in anticipo se il mio codice è scadente o la terminologia è disattivata. Sto cercando di creare un programma che crea un numero casuale e consente all'utente di indovinare fino a quando non ottengono il numero corretto. Non ha altro scopo se non un'esperienza di apprendimento per me.Java - Number Game - Multiple ActionListener nella stessa classe
Ho il programma di base in funzione, voglio solo aggiungere altri elementi per migliorarlo e ottenere l'esperienza.
Il programma viene eseguito in una JFrame e dispone di un campo JText per consentire all'utente di immettere le proprie ipotesi. Ho l'installazione di ActionListener per JTextField. Mi piacerebbe aggiungere un pulsante Start che viene visualizzato all'inizio del gioco. Quando l'utente fa clic sul pulsante di avvio, il JTextField dovrebbe diventare attivo. Inoltre, quando l'utente fa clic sulla risposta corretta, mi piacerebbe utilizzare il pulsante di avvio per ripristinare il programma. Ho sperimentato diversi modi per farlo senza successo. Credo che questo richiederà più ActionListeners nella stessa classe. Non sono nemmeno sicuro che sia possibile?
Ecco il mio codice. Grazie in anticipo per qualsiasi aiuto.
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
public class JMyFrame2 extends JFrame implements ActionListener {
Random num = new Random();
int computerGenerated = num.nextInt(1000);
public int userSelection;
JTextField numberField = new JTextField(10);
JLabel label1 = new JLabel();
Container con = getContentPane();
int previousGuess;
// constructor for JMyFrame
public JMyFrame2(String title) {
super(title);
setSize(750, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
label1 = new JLabel(
"I have a number between 1 and 1000 can you guess my number?" + "Please enter a number for your first guess and then hit Enter.");
setLayout(new FlowLayout());
add(numberField);
add(label1);
System.out.println(computerGenerated);
numberField.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
userSelection = Integer.parseInt(numberField.getText());
con.setBackground(Color.red);
if (userSelection == computerGenerated) {
label1.setText("You are correct");
con.setBackground(Color.GREEN);
} else if (userSelection > computerGenerated) {
label1.setText("You are too high");
} else if (userSelection < computerGenerated) {
label1.setText("You are too low");
}
}
}
public class JavaProgram5 {
public static void main(String[] args) {
JMyFrame2 frame2 = new JMyFrame2("Assignment 5 - Number Guessing Game");
frame2.setVisible(true);
}
}
Esistono diversi modi per implementare un'opzione "riavvia" nel programma. Potresti spiegare in quale parte hai esattamente problemi con? –