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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Имитация нажатия клавиши ввод на поле 
V
    Опции темы
freshAngel
  Дата 29.11.2009, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Привет.
Есть JSpinner (для ввода даты) и JButton (Кнопка "Найти")
Ввожу в JSpinner дату и нажимаю "Найти".
Результат выдается за предыдущую введённую мной дату.
Дело в том, что пока я не нажму ввод на поле JSpinner'е новая введенная мной дата не примется  smile 
Можно ли как нибудь имитировать нажатие клавиши ввод.
Чтобы после заполнения JSpinner'а, я мог сразу нажимать кнопку Найти и не подтверждать ввод новой даты Enter на JSpinner'е!?  
Или может у JSpinner'а есть метод для обновления/присвоения значения!? 
smile  

Это сообщение отредактировал(а) freshAngel - 29.11.2009, 17:13
PM MAIL   Вверх
mgarin
Дата 30.11.2009, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код
        JSpinner spinner = new JSpinner ();
        if ( spinner.getEditor () != null )
        {
            Object value =
                    ( ( JSpinner.DefaultEditor ) spinner.getEditor () ).getTextField ().getValue ();
        }


Вот так можно взять текущее актуальное значение внутри поля спинера.
PM MAIL WWW ICQ   Вверх
mgarin
Дата 30.11.2009, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



И если бы вы посмотрели в описание метода getValue у JSpinner:

Код
    /**
     * Returns the current value of the model, typically
     * this value is displayed by the <code>editor</code>. If the 
     * user has changed the value displayed by the <code>editor</code> it is
     * possible for the <code>model</code>'s value to differ from that of
     * the <code>editor</code>, refer to the class level javadoc for examples
     * of how to deal with this.
     * <p>
     * This method simply delegates to the <code>model</code>.  
     * It is equivalent to:
     * <pre>
     * getModel().getValue()
     * </pre>
     * 
     * @see #setValue
     * @see SpinnerModel#getValue
     */
    public Object getValue() {
    return getModel().getValue();
    }


Уточняя:

Цитата
If the user has changed the value displayed by the <code>editor</code> it is
possible for the <code>model</code>'s value to differ from that of the <code>editor</code>

PM MAIL WWW ICQ   Вверх
freshAngel
  Дата 1.12.2009, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Так - как все работает в SWING по MVC получается значение переменной в модели для JSpinner'a еще не присвоилось пока я не нажал Enter, поэтому выдается старое значение!?
Или I'm bad speaking English!?

Это сообщение отредактировал(а) freshAngel - 1.12.2009, 21:41
PM MAIL   Вверх
mgarin
Дата 1.12.2009, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Пока вы не нажали enter, после ввода вашего собственного значения (не через кнопки вверх-вниз у спиннера),
значение из editor'а в модель не попадает, а выдает спиннер значение из модели,
соответственно в getValue отдается устаревшее значение.
Нужно заставить editor отдать новое значение модели, либо взять напрямую из него
PM MAIL WWW ICQ   Вверх
freshAngel
  Дата 2.12.2009, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Значит я правильно понял  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.0431 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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