Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/40: Рейтинг темы: голосов - 40, средняя оценка - 4.90
0 / 0 / 1
Регистрация: 28.01.2016
Сообщений: 20

Как перезапустить программу?

25.03.2016, 13:14. Показов 8265. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно чтобы по окончанию игры и выборе "сыграть ещё раз" игра перезапускалась снова в этом же окне или же в другом закрыв при этом 1е.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
public class Form1 extends JFrame implements ActionListener {
   private JButton[] gameButton;
        private Font font;
        private byte [] randomize(){
            byte numbers [] ={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
            for (byte j = 0;j<numbers.length;j++){
                byte index = (byte) (Math.random()*numbers.length);
                byte temp=numbers[j];
                numbers[j]=numbers[index];
                numbers[index]=temp;
            }
            return numbers;
        }
 
        // private boolean i = true;
        private byte i = 10;
        public Form1(String title){
            initialize();
            config(title);
 
        }
        private void config(String title){
            this.setTitle(title);
            this.setVisible(true);
            this.setSize(400,400);
            //this.setResizable(false);
            this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        }
        private void initialize(){
 
            GridLayout layout = new GridLayout(4,4);
            font = new Font("Arial",Font.BOLD,15);
            this.setLayout(layout);
            gameButton=new JButton[16];
            byte [] values=randomize();
            for (int i = 0;i<gameButton.length;i++){
                gameButton[i]=new JButton();
                if(i!=15){
                    gameButton[i].setText(String.valueOf(values[i]));
                }
                else {
                    gameButton[i].setEnabled(false);
                }
                gameButton[i].setFont(font);
                gameButton[i].addActionListener(this);
                gameButton[i].setActionCommand(String.valueOf(i));
                add(gameButton[i]);
            }
        }
 
    private String getEmpty(){
        for(JButton button:gameButton){
            if(!button.isEnabled()){
                return button.getActionCommand();
            }
        }
        return null;
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        int clickID=Integer.parseInt(e.getActionCommand());
        int emptyID=Integer.parseInt(getEmpty());
        if(Math.abs(clickID-emptyID)!=4&&Math.abs(clickID-emptyID)!=1){
            return;
        }
        else if(clickID%4==0&&emptyID==clickID-1){
            return;
        }
        String temp=gameButton[clickID].getText();
        gameButton[clickID].setText("");
        gameButton[clickID].setEnabled(false);
        gameButton[emptyID].setText(temp);
        gameButton[emptyID].setEnabled(true);
        if(isGameOver()){
            gameOver();
            questionRestart();
        }
    }
    private boolean isGameOver(){
        for (int i = 0;i<gameButton.length-1;i++){
            if(!String.valueOf(i+1).equals(gameButton[i].getText())){
                return false;
            }
        }
        return true;
    }
    private void gameOver(){
       for (JButton button:gameButton){
            button.setEnabled(false);
        }
      }
    private void questionRestart(){
        int result = JOptionPane.showConfirmDialog(this,"Сыграть ещё раз?","Вы Выйграли",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
        if(result==JOptionPane.NO_OPTION){
            System.exit(0);
        }
        if(result==JOptionPane.YES_OPTION){
            // Нужно чтобы программа снова перезапускалась снова генерируя числа в случайном порядке
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.03.2016, 13:14
Ответы с готовыми решениями:

Как перезапустить программу
мне нужно чтобы программа запускалась заново или все переменные очистились (во всей программе) и запустилась функция main() char...

Как программно перезапустить свою программу???
Есть ли какой нибудь код, что-бы если пользователь нажал на кнопку то программа закрылась и сама снова запустилась.Буду очень благодарен за...

Как программно перезапустить собственную программу?
как программно перезапутить собственную программу? Application.Restart(); не поддерживается!

1
19 / 19 / 3
Регистрация: 11.11.2012
Сообщений: 253
09.04.2016, 13:08
Перемести код запуска в конструктор. при перезапуске закрываешь старое окно и вызываешь конструктор который стартует новую игру
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.04.2016, 13:08
Помогаю со студенческими работами здесь

Как перезапустить программу нажатием кнопки?
Возможно ли такое, что-бы прога сама себя перезапускала?

Как перезапустить программу с новыми данными из textBox
Что я делаю: Делаю игру сапер и там можно выбирать размер поля (высота и ширина) и нажать старт. Пока только поля прорисовываются и то...

Как перезапустить программу. Желательно не через Goto
Есть код по работе с массивами и сам по себе он работает. Но необходимо что бы по желанию пользователя он мог ее перезапустить. Добавил...

Как полностью перезапустить программу из самой же программы? Не сбросить все параметры
Имеется достаточно длинная программа. Вся программа содержится в main() с использованием case. Нужно полностью ребутнуть всю программу,...

Перезапустить программу при неверном выборе в swich
подскажите как сделать при операторе switch вызов сase дальше...а не заново запускать программу. Вот моя программа: #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru