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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JDialog, кнопки управления окном 
:(
    Опции темы
Rusico
Дата 5.10.2005, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Привет всем.

Может кто сможет подсказать: в стандартном JDialog нет кнопок (_;O) - свернуть и развернуть,
как их добавить?
PM MAIL   Вверх
JulT
Дата 5.10.2005, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



никак
PM MAIL   Вверх
Rusico
Дата 5.10.2005, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Хороший ответ.
Если это так, тогда как сделать обычный JFrame модальным?
PM MAIL   Вверх
JulT
Дата 5.10.2005, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Rusico @ 5.10.2005, 13:09)
Хороший ответ.
Если это так, тогда как сделать обычный JFrame модальным?

насколько я знаю тоже никак
PM MAIL   Вверх
djGri
Дата 10.10.2005, 03:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



JFrame .setModal = true;
что-то наподобии TYT

Это сообщение отредактировал(а) djGri - 10.10.2005, 03:10
PM MAIL   Вверх
LSD
Дата 10.10.2005, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(djGri @ 10.10.2005, 04:03)
JFrame .setModal = true;

У JFrame нет такого метода.

Цитата(Rusico @ 5.10.2005, 14:09)
Если это так, тогда как сделать обычный JFrame модальным?

Надо повесить свой листенер на события окна и отлавливать потерю фокуса окном.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
batigoal
Дата 10.10.2005, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

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



Цитата(LSD @ 10.10.2005, 10:50)
Надо повесить свой листенер на события окна и отлавливать потерю фокуса окном.

А это не заблокирует всю систему?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
LSD
Дата 10.10.2005, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(Lamer @ 10.10.2005, 13:51)
А это не заблокирует всю систему?

Да нет, под XP оно даже не всегда всплывает наверх. Окно всплывает только для того же приложения, для других приложений оно остается внизу.
Код
public class TopFrame extends JFrame implements WindowListener, ActionListener
{
  private JButton topButton;

  public TopFrame()
  {
    super("Top frame");

    topButton = new JButton("Close window");
    topButton.addActionListener(this);
    getContentPane().add(topButton);

    addWindowListener(this);
    pack();
    setLocationRelativeTo(null);
    setVisible(true);
  }

  public void windowOpened(WindowEvent e)
  {}

  public void windowClosing(WindowEvent e)
  {}

  public void windowClosed(WindowEvent e)
  {}

  public void windowIconified(WindowEvent e)
  {}

  public void windowDeiconified(WindowEvent e)
  {}

  public void windowActivated(WindowEvent e)
  {}

  public void windowDeactivated(WindowEvent e)
  {
    toFront();
  }

  public void actionPerformed(ActionEvent e)
  {
    System.exit(0);
  }

  public static void main(String[] args)
  {
    JFrame frame = new JFrame("Frame");
    frame.getContentPane().add(new JFileChooser());
    frame.pack();
    frame.setVisible(true);

    frame = new JFrame("Frame");
    frame.getContentPane().add(new JFileChooser());
    frame.pack();
    frame.setVisible(true);
    new TopFrame();
  }
}



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
djGri
Дата 10.10.2005, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Посмотри как сделать модальные фреймы Sun
PM MAIL   Вверх
LSD
Дата 10.10.2005, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(djGri @ 10.10.2005, 19:00)
Посмотри как сделать модальные фреймы Sun

Это урок по созданию Modal Internal Frames. Internal Frame - это не окно в понимании системы, это обычный SWING компонент, просто он эмулирует поведение окна, это не верхний компонент в иерархии как Frame, Window или Applet, он не может выйти за пределы родительского компонента.
Может быть конечно такой диалог подойдет, но он совсем не эквивалентен обычному диалогу.

Есть еще один способ, но мне пока не удалось довести его до конца:
Код
JFrame frame = new JFrame("Frame");
frame.getContentPane().add(new JColorChooser());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setVisible(true);

JDialog dialog = new JDialog(frame,"Modal dialog" , true);
dialog.setUndecorated(true);
dialog.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
dialog.getContentPane().add(new JLabel("Some text"));
dialog.pack();
dialog.setLocationRelativeTo(null);
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);

в данном случае кнопочки управления окном рисует уже не ОС, а RootPane, вернее его Look And Feel. И если покопаться в тонкостях реализации LaF то я думаю можно заставить его рисовать таки эти кнопочки (ведь для JFrame они рисуются). И таким макаром можно получить полноценный модальный диалог. Если у кого есть время и желание покопаться то велкам smile


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0517 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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