Запись значения в 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();
    }
 
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5