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