Очистить фрейм (SWING) - Java
Формулировка задачи:
Только недавно начал учить Java. Решил создать простенькую программку для генерации рандомных чисел. Решил сделать её с помощью swing. Вроде, всё более-менее получилось, но не могу понять, как сбросить уже полученный результат. Т.е, когда я генерирую число, новый результат накладывается на предыдущие. Так и не придумал, как можно это исправить. И гугл ничего не подсказал.
Вот сам код:
public static String s;
public static int a;
private static JTextField text = new JTextField(30);//создаём поле ввода
public static JFrame frame2 = new JFrame();
public static JPanel panel5 = new JPanel();
public static void main(String[] args) throws Exception{
JFrame frame = new JFrame(); //создаём фрейм
frame.setSize(350, 115); //размер
frame.setTitle("Рандомка"); //название
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setVisible(true);
frame.setLayout(new BorderLayout());
// Создание предметов
JLabel label = new JLabel("Введите число"); //создаём лейбл
JButton button2 = new JButton();//создаём кнопку
button2.setText("Ввод");
button2.setCursor(new Cursor(Cursor.HAND_CURSOR));//изменяем курсор
button2.addActionListener(new ButtonActionListener2());//при нажатии на кнопку происходит действие
JPanel panel = new JPanel(); //создаём панель
//добавление
frame.add(label, BorderLayout.PAGE_START); //лейбл
frame.add(panel, BorderLayout.CENTER); //добавляем панель
panel.add(text, BorderLayout.CENTER); //добавляем на панель поле ввода
panel.add(button2, BorderLayout.PAGE_END);
}
public static class ButtonActionListener2 implements ActionListener{
@Override
public void actionPerformed(ActionEvent event){
String s = text.getText();
frame2.setSize(350, 200);
frame2.setTitle("Начинаем рандомить=)");
frame2.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
frame2.setLocationRelativeTo(null);
frame2.setResizable(false);
frame2.setVisible(true);
frame2.setLayout(new BorderLayout());
a=Integer.parseInt(s);
Random rand = new Random();
int n;
n = rand.nextInt(a + 1);
JLabel label3 = new JLabel(" ");
frame2.add(label3, BorderLayout.PAGE_START);
JLabel label2 = new JLabel("Побеждает №" + n);
frame2.add(label2, BorderLayout.PAGE_START);
JButton button = new JButton();
button.setText("Ещё раз!");
button.setCursor(new Cursor(Cursor.HAND_CURSOR));
button.addActionListener(new ButtonActionListener2());
frame2.add(button, BorderLayout.PAGE_END);
}
}Решение задачи: «Очистить фрейм (SWING)»
textual
Листинг программы
public class JavaApplication1 {
public static String s;
public static int a;
private static JTextField text = new JTextField(30);//создаём поле ввода
public static JFrame frame2 = new JFrame();
public static JPanel panel5 = new JPanel();
public static JLabel label2 ;
public static void main(String[] args) throws Exception{
JFrame frame = new JFrame(); //создаём фрейм
frame.setSize(350, 115); //размер
frame.setTitle("Рандомка"); //название
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setVisible(true);
frame.setLayout(new BorderLayout());
// Создание предметов
JLabel label = new JLabel("Введите число"); //создаём лейбл
JButton button2 = new JButton();//создаём кнопку
button2.setText("Ввод");
button2.setCursor(new Cursor(Cursor.HAND_CURSOR));//изменяем курсор
button2.addActionListener(new ButtonActionListener2());//при нажатии на кнопку происходит действие
JPanel panel = new JPanel(); //создаём панель
//добавление
frame.add(label, BorderLayout.PAGE_START); //лейбл
frame.add(panel, BorderLayout.CENTER); //добавляем панель
panel.add(text, BorderLayout.CENTER); //добавляем на панель поле ввода
panel.add(button2, BorderLayout.PAGE_END);
label2 = new JLabel("Побеждает №");
frame2.add(label2, BorderLayout.PAGE_START);
}
public static class ButtonActionListener2 implements ActionListener{
public void actionPerformed(ActionEvent event){
s = text.getText();
frame2.setSize(350, 200);
frame2.setTitle("Начинаем рандомить=)");
frame2.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
frame2.setLocationRelativeTo(null);
frame2.setResizable(false);
frame2.setVisible(true);
frame2.setLayout(new BorderLayout());
a=Integer.parseInt(s);
Random rand = new Random();
int n;
n = rand.nextInt(a + 1);
JLabel label3 = new JLabel(" ");
frame2.add(label3, BorderLayout.PAGE_START);
label2.setText("Побеждает №" + n);
JButton button = new JButton();
button.setText("Ещё раз!");
button.setCursor(new Cursor(Cursor.HAND_CURSOR));
button.addActionListener(new ButtonActionListener2());
frame2.add(button, BorderLayout.PAGE_END);
}
}
}