Я пытаюсь написать программу, которая просит вас нажать на кнопку, чтобы сгенерировать случайное число, а затем заставляет пользователя попытаться угадать, что это за число.
Сейчас я работаю над получить кнопку, чтобы сгенерировать случайное число и сообщить пользователю, что случайное число было сгенерировано с помощью JTextPane. По какой-то причине эта часть кода, кажется, не выполняется правильно.
Я уже создал экземпляр объекта в основном классе и добавил к кнопке actionlistener. Я понятия не имею, что заставляет это не работать должным образом:
package GUIs;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import javax.swing.JToggleButton;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import java.awt.Font;
import java.awt.SystemColor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Principal extends JFrame {
//Elements
private JPanel contentPane;
private JTextField attemptField;
private JTextPane hint;
private JButton btnGenerate;
private JButton btnEnter;
//Events
private GenerateRandomNumber genRanNum;
//Misc variables
int ranNum = 1;
private JTextField textField;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Principal frame = new Principal();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public Principal() {
//Generates JPanel
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
//Generates text field where the user will write the number
attemptField = new JTextField();
attemptField.setBounds(130, 59, 130, 26);
contentPane.add(attemptField);
attemptField.setColumns(10);
//Generates the hint
hint = new JTextPane();
hint.setBackground(SystemColor.window);
hint.setText("First, generate a new number!");
hint.setBounds(130, 110, 192, 19);
contentPane.add(hint);
//Generates the button that should call for the creation of the new number
btnGenerate = new JButton("Generate number");
btnGenerate.setFont(new Font("Lucida Grande", Font.PLAIN, 10));
btnGenerate.setBounds(165, 153, 117, 29);
contentPane.add(btnGenerate);
btnGenerate.addActionListener(genRanNum);
//Generates button that will be used to enter the number
btnEnter = new JButton("Enter");
btnEnter.setBounds(269, 59, 58, 29);
contentPane.add(btnEnter);
}
public class GenerateRandomNumber implements ActionListener {
public void actionPerformed(ActionEvent e) {
ranNum = (int) (Math.random() * 101);
hint.setText("The number has been created!");
}
}
}