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

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

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

Author24 — интернет-сервис помощи студентам
Нужно чтобы по окончанию игры и выборе "сыграть ещё раз" игра перезапускалась снова в этом же окне или же в другом закрыв при этом 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2016, 13:14
Ответы с готовыми решениями:

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

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

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

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

1
19 / 19 / 3
Регистрация: 11.11.2012
Сообщений: 253
09.04.2016, 13:08 2
Перемести код запуска в конструктор. при перезапуске закрываешь старое окно и вызываешь конструктор который стартует новую игру
0
09.04.2016, 13:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2016, 13:08
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru