powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Проверка, есть ли форма на экране
18 сообщений из 18, страница 1 из 1
Проверка, есть ли форма на экране
    #39157537
Добрый день!
Сразу извиняюсь - изучаю Java первый месяц...
Как узнать, есть ли форма на экране? Из одной формы запускаю вторую. Не хочу, чтобы вторая форма была запущена дважды.
Александр.
...
Рейтинг: 0 / 0
Проверка, есть ли форма на экране
    #39157583
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Проверка, есть ли форма на экране
    #39158390
Спасибо! Но мне не надо "модальное окно"... Я хочу, чтобы форма не запускалась дважды... Можно проверить, что форма уже на экране?
...
Рейтинг: 0 / 0
Проверка, есть ли форма на экране
    #39158398
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр 58,

Например,
Код: java
1.
2.
3.
if (! frame2.isVisible()) {
  frame2.setVisible(true);
}
...
Рейтинг: 0 / 0
Проверка, есть ли форма на экране
    #39158399
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я правильно понимаю, что вам нужно, чтобы приложение ваше не запускалось дважды в системе?
...
Рейтинг: 0 / 0
Проверка, есть ли форма на экране
    #39158400
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр 58Спасибо! Но мне не надо "модальное окно"... Я хочу, чтобы форма не запускалась дважды... Можно проверить, что форма уже на экране?
проверьте все свойства объекта "форма".
Наверно есть visible
...
Рейтинг: 0 / 0
Проверка, есть ли форма на экране
    #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
Проверка, есть ли форма на экране
    #39158443
Nixic, добрый день!
Да, Вы правильно поняли. Из одной формы запускается вторая. Нажимая на вызов 2-й формы несколько раз, я получаю несколько одинаковых 2-х форм. Я хочу, чтобы форма запускалась только один раз... Как проверить, есть ли форма на экране?
Пока у меня только решение - заблокировать кнопку вызова, если форма уже есть и разблокировать при закрытии формы.
...
Рейтинг: 0 / 0
Проверка, есть ли форма на экране
    #39158447
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр 58Пока у меня только решение - заблокировать кнопку вызова
не усложняй - Выведи сообщение что форма уже есть.
...
Рейтинг: 0 / 0
Проверка, есть ли форма на экране
    #39158460
Usman, добрый день!
Печатаю isVisible(). При 1-м запуске и при последующих запусках всегда - FALSE.
...
Рейтинг: 0 / 0
Проверка, есть ли форма на экране
    #39158463
Petro123, добрый день!
А как узнать, что форма уже есть? Я это и хочу узнать...
...
Рейтинг: 0 / 0
Проверка, есть ли форма на экране
    #39158474
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр 58Usman, добрый день!
Печатаю isVisible(). При 1-м запуске и при последующих запусках всегда - FALSE.Чтобы долго не гадать, что у Вас там происходит в реале... выложите исходники (или фрагмент). Посмотрим

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

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

нажимаю на кнопку, вызывается форма...
...
Рейтинг: 0 / 0
Проверка, есть ли форма на экране
    #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
Проверка, есть ли форма на экране
    #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
Проверка, есть ли форма на экране
    #39162701
Andrew1411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew1411,

еще ошибка:

private FrameHelp instance;

поменять на

private static FrameHelp instance;

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

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


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