Очистить фрейм (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);
 
        }
 
    }
    
}

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


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

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

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