Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос про модальное окно и JFrame 
V
    Опции темы
freshAngel
  Дата 15.5.2009, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Привет.
Вот решил сделать модальное окно.
Делаю так: 

Код

public void testframe()
    {
    JFrame frame = new JFrame();
    JPanel panel = new JPanel();
    panel.add(new JLabel("Cool"));
    frame.add(panel);
    frame.setTitle("App");
    frame.setModal(true); // Ошибка здесь!
    frame.setResizable(false);
    frame.setSize(200,200);
    frame.show();
  }


Пишет, что нет такого метода setModal()
Ошибка: cannot find symbol

А потом попробовал сделал, так:

Код

public void testframe()
    {
    JFrame frame = new JFrame();
    JDialog dialog = new JDialog("Cool",true); // Заголовок окна, модальное окно = true
    JPanel panel = new JPanel();
    panel.add(new JLabel("Cool"));
    dialog.add(panel);
    dialog.setTitle("App");
    dialog.setResizable(false);
    dialog.setSize(200,200);
    dialog.show();
    }


И появилась мысль а зачем тогда вообще JFrame нужен!?

Это сообщение отредактировал(а) freshAngel - 15.5.2009, 09:14
PM MAIL   Вверх
Connie
Дата 15.5.2009, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 382
Регистрация: 12.8.2008

Репутация: 8
Всего: 9



freshAngel, А у JFrame и нет такого метода, он есть у JDialog
PM MAIL WWW   Вверх
freshAngel
  Дата 15.5.2009, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Цитата(Connie @ 15.5.2009,  09:49)
freshAngel, А у JFrame и нет такого метода, он есть у JDialog

Уважаемый Connie.
Просто интересно. Если JDialog такой хороший, то зачем вообще JFrame нужен!?
В чем разница!?
PM MAIL   Вверх
Connie
Дата 15.5.2009, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 382
Регистрация: 12.8.2008

Репутация: 8
Всего: 9



freshAngel, инструкции для дураков ))))))))))))
http://java.sun.com/docs/books/tutorial/ui...s/toplevel.html

Цитата
As a rule, a standalone application with a Swing-based GUI has at least one containment hierarchy with a JFrame as its root. For example, if an application has one main window and two dialogs, then the application has three containment hierarchies, and thus three top-level containers. One containment hierarchy has a JFrame as its root, and each of the other two has a JDialog object as its root. 


http://java.sun.com/docs/books/tutorial/ui...ents/frame.html

http://java.sun.com/docs/books/tutorial/ui...nts/dialog.html

http://java.sun.com/javase/6/docs/api/java...ng/JDialog.html


А кратко так: в десктоп приложении основой (root) должно быть JFrame, а остальные окна должны быть JDialog
PM MAIL WWW   Вверх
Alix
Дата 15.5.2009, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

Репутация: 2
Всего: 23



Цитата(freshAngel @  15.5.2009,  11:28 Найти цитируемый пост)

Просто интересно. Если JDialog такой хороший, то зачем вообще JFrame нужен!?
В чем разница!? 

Приведу немного копипастов со swing tutorial'a:
Цитата
    A Dialog window is an independent subwindow meant to carry temporary notice apart from the main Swing Application Window. Most Dialogs present an error message or warning to a user, but Dialogs can present images, directory trees, or just about anything compatible with the main Swing Application that manages them. 

Цитата
These are the same features that JFrame has, and using JDialog directly is very similar to using JFrame. If you're going to use JDialog directly, then you should understand the material in Using Top-Level Containers and How to Make Frames, especially Responding to Window-Closing Events.

Цитата
To make a window that is dependent on another window — disappearing when the other window is iconified, for example — use a dialog instead of frame.. To make a window that appears within another window, use an internal frame. 


Добавлено через 1 минуту и 12 секунд
на минуту опоздал smile


--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
freshAngel
  Дата 15.5.2009, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Это я читал.
С английским плохо, но вроде понял вот что:
Корень (основное окно) это всегда хотя - бы один JFrame.
Это в принципе понятно.
Непонятно вот что.
Остальные окна всегда должны быть JDialog!?
Или без разницы в зависимости от ситуации или как!?
PM MAIL   Вверх
Connie
Дата 15.5.2009, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 382
Регистрация: 12.8.2008

Репутация: 8
Всего: 9



freshAngel, JDialog если они должны зависеть от основного окна, т.е. скрываться с системный бар при скрытии основного окна и т.п.

Но в java нет суровых ограничений, так что творите...
PM MAIL WWW   Вверх
freshAngel
  Дата 15.5.2009, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Вроде понемногу разобрался.
Осталось непонятным только вот, что!?
Что значит JDialog зависит от основного фрейма!?

Код

public void testframe()
    {
    JFrame frame = new JFrame();
    JPanel panel = new JPanel();
    panel.add(new JLabel("Cool"));
    frame.add(panel);
    frame.setTitle("Frame Title");
    JDialog dialog = new JDialog(frame);
    
    //dialog.setTitle("Dialog Title");
    dialog.setResizable(false);
    dialog.setSize(200,200);
    dialog.setVisible(true);
    }


Я так понимаю, что JDialog должен наследовать некоторые свойства JFrame которые были указаны ранее!?
В этом примере, код выше, я так понимаю должен быть заголовок окна "Frame Title", но заголовок не показывается вообще.
Или как - то это все по другому работает!?
PM MAIL   Вверх
Connie
Дата 16.5.2009, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 382
Регистрация: 12.8.2008

Репутация: 8
Всего: 9



freshAngel, 
Цитата
Что значит JDialog зависит от основного фрейма!?
если в Вашем примере свернуть основное окно, то будет свернут и диалог.
Если Вы создали диалог с использованием конструктора JDialog(someowner) то у этого окошка не будет своей иконки. См документацию, там подробнее.
PM MAIL WWW   Вверх
freshAngel
  Дата 16.5.2009, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Ага. Разобрался.
Connie, спасибо таки огроменное smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0646 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.