Запись значения в int из JTextField - Java
Формулировка задачи:
Доброго времени суток , недавно начал заниматься программированием на Java , сейчас пишу простую программу на Swing , простая игра с сложением чисел , идея простая - в окне выводятся два числа , поле для ввода и кнопка OK , идея - ввести правильную сумму случайных чисел и нажать кнопку OK , после нажатия OK , появляется окно , в котором в зависимости от правильности ответа пользователя появляется JLabel ( молодец или попробуй еще раз) . каждое окно сделал как отдельный класс . Встал в тупик в том , как взять из JTextField значение int , и сравнить его с суммой рандомных чисел , и всё это после нажатия кнопки OK. слушателей подготовил , но что туда написать не пойму.
вот код
Листинг программы
- import java.awt.Dimension;
- import java.awt.FlowLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JTextField;
- import java.util.Random;
- public class Herselfgame {
- public static void createGame() {
- JFrame frame1 = new JFrame("Сложи Число");
- frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- JPanel panel1 = new JPanel();
- panel1.setLayout(new FlowLayout());
- int randoma = new Random().nextInt(700) + 1;
- int randomb = new Random().nextInt(700) + 1;
- // int randomc = randoma + randomb;
- JLabel label1 = new JLabel("сложите " + randoma + "+" + randomb + " =");
- JTextField textfield2 = new JTextField(5);
- panel1.add(label1);
- panel1.add(textfield2);
- JButton okbutton = new JButton ("OK");
- okbutton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- }
- });
- panel1.add(okbutton);
- frame1.getContentPane().add(panel1);
- frame1.setPreferredSize(new Dimension(400, 200));
- frame1.pack();
- frame1.setLocationRelativeTo(null);
- frame1.setVisible(true);
- }
- }
Решение задачи: «Запись значения в int из JTextField»
textual
Листинг программы
- package cfapp;
- import java.awt.Dimension;
- import java.awt.FlowLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JTextField;
- import java.util.Random;
- import javax.swing.JOptionPane;
- public class CfApp {
- int randoma;
- int randomb;
- public void createGame() {
- final JFrame frame1 = new JFrame("Сложи Число");
- frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- JPanel panel1 = new JPanel();
- panel1.setLayout(new FlowLayout());
- final Random r = new Random();
- randoma = r.nextInt(700) + 1;
- randomb = r.nextInt(700) + 1;
- // int randomc = randoma + randomb;
- JLabel label1 = new JLabel("сложите " + randoma + "+" + randomb + " =");
- JTextField textfield2 = new JTextField(5);
- panel1.add(label1);
- panel1.add(textfield2);
- JButton okbutton = new JButton("OK");
- okbutton.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- String info;
- try {
- int result = Integer.parseInt(textfield2.getText());
- if (result == (randoma + randomb)) {
- info = "Правильно!";
- randoma = r.nextInt(700) + 1;
- randomb = r.nextInt(700) + 1;
- label1.setText("сложите " + randoma + "+" + randomb + " =");
- textfield2.setText(""); //if wanna clear TF2
- } else {
- info = "Неправильно! Введите другой ответ.";
- }
- } catch (Exception ex) {
- info = "Некорректное значение. Введите другой ответ";
- }
- JOptionPane.showMessageDialog(frame1, info);
- }
- });
- panel1.add(okbutton);
- frame1.getContentPane().add(panel1);
- frame1.setPreferredSize(new Dimension(400, 200));
- frame1.pack();
- frame1.setLocationRelativeTo(null);
- frame1.setVisible(true);
- }
- public static void main(String[] args) {
- new CfApp().createGame();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д