|
|
|||||||
Поставить фокус в JOptionPane29.10.2013, 09:37. Показов 2117. Ответов 8
Метки нет (Все метки)
Передаю в JOptionPane поле для ввода пользователем данных, но по умолчанию фокус ставится в кнопку "ОК". Мне же надо поставить фокус в поле. На StackOverflow предложили переопределить у поля метод addNotify, добавив туда requestFocusInWindow();
Получилось что-то такое:
Есть ли способы сделать по-людски? Добавлено через 14 часов 51 минуту Нашел вот такую вот тему: http://bugs.sun.com/bugdatabas... id=5018574
0
|
|||||||
| 29.10.2013, 09:37 | |
|
Ответы с готовыми решениями:
8
Обработка событий. JoptionPane.showMessageDialog(...) || JOptionPane.showOptionDialog(...) || JDialog Как програмно поставить фокус на ячейку в JTable ? Как поставить фокус на Edit |
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
| 31.10.2013, 17:10 | |
|
Господи, ну напишите свой диалог ввода пароля! За то время, пока Вы решения ждете, уже бы отладили. Там же всё тривиально.
1
|
|
|
|
|||||||
| 31.10.2013, 17:13 [ТС] | |||||||
Или я что-то не так сделал?
0
|
|||||||
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
| 31.10.2013, 17:29 | |
|
Вы не поняли. Зачем показывать этот диалог в JOptionPane? Добавьте еще пару кнопок, положите в JDialog, сделайте его модальным.
P.S. SecurityManager - название неудачное. Это устоявшееся в Java понятие, так называется менеджер безопасности. Назовите PasswordDialog, это гораздо ближе к сути.
1
|
|
|
|
||||||
| 31.10.2013, 18:02 [ТС] | ||||||
|
Ага. Вроде получилось. Но у меня еще один вопрос. Сделал я вот такого зверька:
Но без команды dispose в строке 119 поток продолжает работать после того, как отработала последняя - 125 - строчка, т.е. объект продолжает висеть в памяти. Хотя вроде в 28 строке я сказал DISPOSE_ON_CLOSE Почему не срабатывает? Добавлено через 6 минут Я так догадываюсь, setVisible(false) он не считает закрытием?
0
|
||||||
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
||
| 01.11.2013, 10:28 | ||
|
Еще один момент. Неочевидно, что в getPassword Вы показываете диалог. Я бы сделал по другому немного. Диалог создается, показывается. У него есть внутри переменная типа boolean disposed = true; и метод isDisposed. По нажатию Cancel Вы просто вызываете dispose, по Ok записываете введенное значение и выставляете переменную в false, а потом уже dispose, по крестику окно просто закроется с dispose. После того, как управление вернулось в точку вызова, проверяете - if (!d.isDisposed()) и получаете пароль через getPassword, но вот это уже будет чистый getter без побочных эффектов. Зачем это надо. Вы у себя не различаете, введен пароль, или нет, Вы его всегда возвращаете. А поскольку изначальное значение - пустая строка, то разницы между cancel и пустым паролем Вы не увидите. Cancel - это отмена операции, а пустой пароль вообще-то имеет право на жизнь, т.е. обрабатываться эти ситуации должны по-разному.
1
|
||
|
|
||||||
| 01.11.2013, 10:56 [ТС] | ||||||
|
Получилось в итоге вот так (на случай, если кому пригодится):
Кликните здесь для просмотра всего текста
Я правильно понимаю, что я могу использовать d.getPassword() даже после dispose() потому, что ссылку из переменной d dispose() не убивает, а следовательно все поля формы все еще хранятся в памяти и не переданы GC? И еще вопрос: если я не сделаю в форме dispose(), я правильно понимаю, что даже после зануления переменной d форма останется в памяти, потому что она связана с какими-то внутренними функциями JVM?
0
|
||||||
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
| 01.11.2013, 12:13 | |
|
1. Да
2. Достоверно не скажу. Допускаю, что действительно остается в памяти.
0
|
|
| 01.11.2013, 12:13 | |
|
Помогаю со студенческими работами здесь
9
Как убрать/поставить фокус на элементе? Убрать фокус с элементов на форме, и поставить на форму Как поставить фокус на TextBoxe рассположенном на листе (не на форме)? JOptionPane
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|