Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Проверка, есть ли форма на экране / 18 сообщений из 18, страница 1 из 1
28.01.2016, 14:40
    #39157537
Проверка, есть ли форма на экране
Добрый день!
Сразу извиняюсь - изучаю Java первый месяц...
Как узнать, есть ли форма на экране? Из одной формы запускаю вторую. Не хочу, чтобы вторая форма была запущена дважды.
Александр.
...
Рейтинг: 0 / 0
28.01.2016, 14:58
    #39157583
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка, есть ли форма на экране
...
Рейтинг: 0 / 0
29.01.2016, 12:27
    #39158390
Проверка, есть ли форма на экране
Спасибо! Но мне не надо "модальное окно"... Я хочу, чтобы форма не запускалась дважды... Можно проверить, что форма уже на экране?
...
Рейтинг: 0 / 0
29.01.2016, 12:35
    #39158398
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка, есть ли форма на экране
Александр 58,

Например,
Код: java
1.
2.
3.
if (! frame2.isVisible()) {
  frame2.setVisible(true);
}
...
Рейтинг: 0 / 0
29.01.2016, 12:36
    #39158399
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка, есть ли форма на экране
я правильно понимаю, что вам нужно, чтобы приложение ваше не запускалось дважды в системе?
...
Рейтинг: 0 / 0
29.01.2016, 12:36
    #39158400
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка, есть ли форма на экране
Александр 58Спасибо! Но мне не надо "модальное окно"... Я хочу, чтобы форма не запускалась дважды... Можно проверить, что форма уже на экране?
проверьте все свойства объекта "форма".
Наверно есть visible
...
Рейтинг: 0 / 0
29.01.2016, 12:50
    #39158408
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка, есть ли форма на экране
Код: 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.
public static void main(String[] args) throws Exception {
    java.awt.EventQueue.invokeLater(new Runnable() {
        
        private javax.swing.JFrame f1 = new javax.swing.JFrame();
        private javax.swing.JFrame f2 = new javax.swing.JFrame();
        
        @Override
        public void run() {
            f1.setSize(300, 300);
            f1.setLocationRelativeTo(null);
            f1.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
            
            f2.setSize(150, 150);
            f2.setLocationRelativeTo(f1);
            f2.setDefaultCloseOperation(javax.swing.JFrame.DISPOSE_ON_CLOSE);
            f2.setVisible(false);
            
            javax.swing.JButton b = new javax.swing.JButton();
            b.setText("Button");
            b.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    f2.setLocationRelativeTo(f1);
                    if (f2.isVisible()) {
                        f2.toFront();
                        f2.repaint();
                    } else {
                        f2.setVisible(true);
                    }
                }
            });
            f1.add(b);
            f1.setVisible(true);
        }
    });
}
...
Рейтинг: 0 / 0
29.01.2016, 13:46
    #39158443
Проверка, есть ли форма на экране
Nixic, добрый день!
Да, Вы правильно поняли. Из одной формы запускается вторая. Нажимая на вызов 2-й формы несколько раз, я получаю несколько одинаковых 2-х форм. Я хочу, чтобы форма запускалась только один раз... Как проверить, есть ли форма на экране?
Пока у меня только решение - заблокировать кнопку вызова, если форма уже есть и разблокировать при закрытии формы.
...
Рейтинг: 0 / 0
29.01.2016, 13:50
    #39158447
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка, есть ли форма на экране
Александр 58Пока у меня только решение - заблокировать кнопку вызова
не усложняй - Выведи сообщение что форма уже есть.
...
Рейтинг: 0 / 0
29.01.2016, 13:57
    #39158460
Проверка, есть ли форма на экране
Usman, добрый день!
Печатаю isVisible(). При 1-м запуске и при последующих запусках всегда - FALSE.
...
Рейтинг: 0 / 0
29.01.2016, 13:58
    #39158463
Проверка, есть ли форма на экране
Petro123, добрый день!
А как узнать, что форма уже есть? Я это и хочу узнать...
...
Рейтинг: 0 / 0
29.01.2016, 14:05
    #39158474
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка, есть ли форма на экране
Александр 58Usman, добрый день!
Печатаю isVisible(). При 1-м запуске и при последующих запусках всегда - FALSE.Чтобы долго не гадать, что у Вас там происходит в реале... выложите исходники (или фрагмент). Посмотрим

И попробуйте выполнить у себя: 18745005
Прямо копируйте с main'ом в свой проект, а старый main временно "закомментьте"
...
Рейтинг: 0 / 0
31.01.2016, 14:56
    #39159469
Проверка, есть ли форма на экране
Usman, добрый день!
Уточню - я работаю с java через netbeans 8.1
текст очень простой:

private void jMenu3MousePressed(java.awt.event.MouseEvent evt) {
FrameHelp FrameHelp = new FrameHelp();
FrameHelp.setVisible(true);
}

нажимаю на кнопку, вызывается форма...
...
Рейтинг: 0 / 0
04.02.2016, 10:31
    #39162695
Andrew1411
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка, есть ли форма на экране
Александр 58,

Самый простой, но далеко не самый лучший способ для вас будет:


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class FrameHelp {
...
   private FrameHelp instance;

   public static synchronize FrameHelp show(){  
       if(instance == null){
          instance= new FrameHelp();
       }
       FrameHelp.setVisible(true);
   }
....
}




вызывать FrameHelp.show()
...
Рейтинг: 0 / 0
04.02.2016, 10:33
    #39162696
Andrew1411
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка, есть ли форма на экране
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class FrameHelp {
...
   private FrameHelp instance;

   public static synchronize FrameHelp show(){  
       if(instance == null){
          instance= new FrameHelp();
       }
       instance.setVisible(true);
   }
....
}
...
Рейтинг: 0 / 0
04.02.2016, 10:38
    #39162701
Andrew1411
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка, есть ли форма на экране
Andrew1411,

еще ошибка:

private FrameHelp instance;

поменять на

private static FrameHelp instance;

и было бы хорошо, при закрытии формы делать instance= null;
...
Рейтинг: 0 / 0
04.02.2016, 16:42
    #39163176
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка, есть ли форма на экране
И никто про синглтон даже не вспомнил.
...
Рейтинг: 0 / 0
04.02.2016, 17:05
    #39163210
golovonometr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка, есть ли форма на экране
Да нафиг здесь синглтон? Автор приведите пожалуйста весь свой код, если как вы говорите он простой.

Пока по комментариям, понятно что вам нужно именно модальное окно, зачем изобретать велосипед когда есть модал? - тоже не понятно, код в студию
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Проверка, есть ли форма на экране / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]