Запись значения в 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(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д