Запись значения в int из JTextField - Java

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток , недавно начал заниматься программированием на Java , сейчас пишу простую программу на Swing , простая игра с сложением чисел , идея простая - в окне выводятся два числа , поле для ввода и кнопка OK , идея - ввести правильную сумму случайных чисел и нажать кнопку OK , после нажатия OK , появляется окно , в котором в зависимости от правильности ответа пользователя появляется JLabel ( молодец или попробуй еще раз) . каждое окно сделал как отдельный класс . Встал в тупик в том , как взять из JTextField значение int , и сравнить его с суммой рандомных чисел , и всё это после нажатия кнопки OK. слушателей подготовил , но что туда написать не пойму. вот код
Листинг программы
  1. import java.awt.Dimension;
  2. import java.awt.FlowLayout;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5.  
  6. import javax.swing.JButton;
  7. import javax.swing.JFrame;
  8. import javax.swing.JLabel;
  9. import javax.swing.JPanel;
  10. import javax.swing.JTextField;
  11. import java.util.Random;
  12.  
  13. public class Herselfgame {
  14. public static void createGame() {
  15. JFrame frame1 = new JFrame("Сложи Число");
  16. frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  17. JPanel panel1 = new JPanel();
  18. panel1.setLayout(new FlowLayout());
  19.  
  20. int randoma = new Random().nextInt(700) + 1;
  21. int randomb = new Random().nextInt(700) + 1;
  22. // int randomc = randoma + randomb;
  23. JLabel label1 = new JLabel("сложите " + randoma + "+" + randomb + " =");
  24.  
  25. JTextField textfield2 = new JTextField(5);
  26.  
  27. panel1.add(label1);
  28. panel1.add(textfield2);
  29. JButton okbutton = new JButton ("OK");
  30. okbutton.addActionListener(new ActionListener() {
  31. public void actionPerformed(ActionEvent e) {
  32.  
  33. }
  34. });
  35. panel1.add(okbutton);
  36.  
  37. frame1.getContentPane().add(panel1);
  38. frame1.setPreferredSize(new Dimension(400, 200));
  39. frame1.pack();
  40. frame1.setLocationRelativeTo(null);
  41. frame1.setVisible(true);
  42. }
  43.  
  44. }

Решение задачи: «Запись значения в int из JTextField»

textual
Листинг программы
  1. package cfapp;
  2.  
  3. import java.awt.Dimension;
  4. import java.awt.FlowLayout;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7.  
  8. import javax.swing.JButton;
  9. import javax.swing.JFrame;
  10. import javax.swing.JLabel;
  11. import javax.swing.JPanel;
  12. import javax.swing.JTextField;
  13.  
  14. import java.util.Random;
  15. import javax.swing.JOptionPane;
  16.  
  17. public class CfApp {
  18.  
  19.     int randoma;
  20.     int randomb;
  21.  
  22.     public void createGame() {
  23.  
  24.         final JFrame frame1 = new JFrame("Сложи Число");
  25.         frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  26.         JPanel panel1 = new JPanel();
  27.         panel1.setLayout(new FlowLayout());
  28.  
  29.         final Random r = new Random();
  30.  
  31.         randoma = r.nextInt(700) + 1;
  32.         randomb = r.nextInt(700) + 1;
  33.         //  int randomc = randoma + randomb;
  34.  
  35.         JLabel label1 = new JLabel("сложите " + randoma + "+" + randomb + " =");
  36.  
  37.         JTextField textfield2 = new JTextField(5);
  38.  
  39.         panel1.add(label1);
  40.         panel1.add(textfield2);
  41.  
  42.         JButton okbutton = new JButton("OK");
  43.         okbutton.addActionListener(new ActionListener() {
  44.             @Override
  45.             public void actionPerformed(ActionEvent e) {
  46.  
  47.                 String info;
  48.  
  49.                 try {
  50.  
  51.                     int result = Integer.parseInt(textfield2.getText());
  52.                     if (result == (randoma + randomb)) {
  53.                         info = "Правильно!";
  54.  
  55.                         randoma = r.nextInt(700) + 1;
  56.                         randomb = r.nextInt(700) + 1;
  57.                         label1.setText("сложите " + randoma + "+" + randomb + " =");
  58.                         textfield2.setText(""); //if wanna clear TF2
  59.  
  60.                     } else {
  61.                         info = "Неправильно! Введите другой ответ.";
  62.                     }
  63.                 } catch (Exception ex) {
  64.                     info = "Некорректное значение. Введите другой ответ";
  65.                 }
  66.                
  67.                 JOptionPane.showMessageDialog(frame1, info);
  68.             }
  69.         });
  70.         panel1.add(okbutton);
  71.  
  72.         frame1.getContentPane().add(panel1);
  73.         frame1.setPreferredSize(new Dimension(400, 200));
  74.  
  75.         frame1.pack();
  76.         frame1.setLocationRelativeTo(null);
  77.         frame1.setVisible(true);
  78.     }
  79.  
  80.     public static void main(String[] args) {
  81.         new CfApp().createGame();
  82.     }
  83.  
  84. }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут