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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JSpinner, JSpinner 
:(
    Опции темы
LeonLG
Дата 15.3.2006, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Люди кто-нибудь работал с JSpinner мои code:

Код

//Mein JSpinner
JSpinner jahrSpinner = new JSpinner(new SpinnerDateModel());
JSpinner.DateEditor jahr = new JSpinner.DateEditor(jahrSpinner, "yyyy");
jahr.getTextField().setEditable(false);
jahrSpinner.setEditor(jahr);

в данном случае будет актуальныи год выдан, т.е. 2006. Но я хочу штобы JSpinner старвовал с другим числом например, 2007. Знает кто-нибудь?
я пробовал с:
Код

jahrSpinner.setValue(date);


но в етом случае, (date), от типа Date, а мне нужен int или String.
или может я чего неправилно делаю, может есть другая возможность дату изменять?
PM MAIL   Вверх
powerOn
Дата 15.3.2006, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Попробуй так

Код

        SpinnerDateModel model = new SpinnerDateModel();
        JSpinner jSpinner1 = new JSpinner(model);
        JSpinner.DateEditor jahr = new JSpinner.DateEditor(jSpinner1, "yyyy");

        Calendar c = Calendar.getInstance();
        c.set(2007,1,1);

        model.setValue(c.getTime());
        jahr.getTextField().setEditable(false);
        jSpinner1.setEditor(jahr);


Это сообщение отредактировал(а) MoonCat - 15.3.2006, 13:50


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
LeonLG
Дата 15.3.2006, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо за быстрыи ответ!!!
Так я уже провобал, но в етом случае т.е.:
Код

c.set(2007,1,1);


ета дата рассматривается как statisch или как константа, а мне хотелось бы чтобы дата исходила из актуального года, т.е.
актуальныиГод + 1, без констант (2007,1,1)
есть ли такая возможность??
PM MAIL   Вверх
powerOn
Дата 15.3.2006, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Может быть 6 строчку поменять на

Код

c.set(c.get(1)+1,1,1);



--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
LeonLG
Дата 15.3.2006, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



в строке 8:

Код

model.setValue(c.getTime());


пишет: The method getTime() is undefined for the type GridBagConstraints
????
Добавлено @ 14:25
Sorry, Sorry
ето моя ошибка, я неправилно написал
Добавлено @ 14:26
Super

все работает, спасибочки большоееееееееееее
PM MAIL   Вверх
powerOn
Дата 15.3.2006, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



пожалуйста


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
LeonLG
Дата 15.3.2006, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Возник еще вопросик, может кто поможет smile ??

я сделал 3 JSpinner: Day, Month, Yaer

Код

//Day 
JSpinner projektErstellTag = new JSpinner(new SpinnerDateModel());        
        JSpinner.DateEditor erstellTag = 
            new JSpinner.DateEditor(projektErstellTag,"dd");        
erstellTag.getTextField().setEditable(false);
erstellTag.getTextField().setFont(new Font("Arial", 3, 12));
projektErstellTag.setEditor(erstellTag);

//Month
JSpinner projektErstellMonat = new JSpinner(new SpinnerDateModel());        
    JSpinner.DateEditor erstellMonat = 
    new JSpinner.DateEditor(projektErstellMonat,"MM");    
erstellMonat.getTextField().setEditable(false);
erstellMonat.getTextField().setFont(new Font("Arial", 3, 12));
projektErstellMonat.setEditor(erstellMonat);

//Year
JSpinner projektErstellJahr = new JSpinner(new SpinnerDateModel());        
        JSpinner.DateEditor erstellJahr = 
            new JSpinner.DateEditor(projektErstellJahr,"yyyy");        
erstellJahr.getTextField().setEditable(false);
erstellJahr.getTextField().setFont(new Font("Arial", 3, 12));
projektErstellJahr.setEditor(erstellJahr);    



Могу их едитировать...
Проблема в том что, ети 3 JSpinner не зависимы друг от друга, т.е.
если я занесу в JSpinner, где у меня Month выдается, т.е.
Код

JSpinner projektErstellMonat = new JSpinner(new SpinnerDateModel());

месяц 2, т.е. февраль
то в JSpinner где у меня выдается день, возможность выбора в днях = 31, хотя февраль = 28 || 29
тоже самое по достижению 12 месяцев, мои JSpinner, где выдается год, тоже не переключается автоматически на следующии год

Проблема лежит предполагаю в том что, я каждыи раз создавал JSpinner = new JSpinner как новыи объект????
Но все ето работает, когда я всю дату "дд.ММ.гггг" выдаю в одном едиторе, но мне хотелось бы в трех разных зависимых друг от друга JSpinner делать выдачу
возможно ли ето??


PM MAIL   Вверх
powerOn
Дата 16.3.2006, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Я так понимаю, что ты хочешь под каждую из частей одной даты (год, месяц, день) создать отдельный JSpinner
Т.е. первый редактирует год, втрой - месяц, третий - день.

На самом деле самое простое решение это использовать один JSpinner и ничего не мудрить.

но если это действительно необходимо, то придеться писать код который синхронизирует все три JSpinner-a.
Т.е. обрабатывать события об изменении каждого из JSpinner-ов и зависимост от происходящих с ним действий
корректировать информацию в других JSpinner-ах ( например для корректной смены месяца при смене числа с 31 на 1 ) .

Ответ на твой вопрос: Возможно.






--------------------
user posted image нет времени думать - нужно писать КОД!

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


Новичок



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

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



Мда, я вот и попыталсы уже и класс написал, которыи проверку делает на дни, месяца и высокосные года, но понял што логика насотлько усложняется, что лучше деиствительно наверное один JSpinner взять для всеи даты

спасибо за совет .....


PM MAIL   Вверх
powerOn
Дата 16.3.2006, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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




Цитата

Мда, я вот и попыталсы уже и класс написал


Не торопись изобретать велосипед.... smile
Думаю, что это тебя заинтересует: http://www.toedter.com/en/jcalendar/


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
LeonLG
Дата 16.3.2006, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Даa, об етом plugin-e читал уже, вещь отличная согласен. к сожалению в моем проекте не разрешено уптребление автоматически генрерированных code и plugins
PM MAIL   Вверх
LSD
Дата 16.3.2006, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Решение есть, но немного гемморойное.
1. Все спиннеры должны работать с одной моделью. Так они будут синхронизированы по дате (соответсвенно не надо будет вычислять максимальный день и т.д.).
2. Надо переписать класс JSpinner.DateEditor, так чтобы он обновлял не значение целиком а только одно поле (год, месяц, число и т.д.). Вот это самая трудная в реализации часть, надо взять за основу JSpinner.DateEditor и переделать его.


--------------------
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   Вверх
powerOn
Дата 16.3.2006, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Цитата

Даa, об етом plugin-e читал уже, вещь отличная согласен. к сожалению в моем проекте не разрешено уптребление автоматически генрерированных code и plugins


Так ведь он с исходниками поставляется....


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
LeonLG
Дата 19.3.2006, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я запустил свой JSpinner наконецто, благодаря етому форуму smile
но столкнулся со следующей проблемой


Код

public JSpinner projektBeginnJahr = new JSpinner(new SpinnerDateModel());
static Calendar beginnJAHR = null;

JSpinner.DateEditor beginnJahr = 
            new JSpinner.DateEditor(projektBeginnJahr,"yyyy");
        beginnJAHR = Calendar.getInstance();
        beginnJAHR.set(beginnJAHR.get(1)+2,0,0);


int projekt = Integer.valueOf(projektBeginnJahr.getValue().toString()).intValue();
                System.out.println(projekt );


здесь

Код

int projekt = Integer.valueOf(projektBeginnJahr.getValue().toString()).intValue();
                System.out.println(projekt );


попытался зделать выдачу кaк int, выдает к сожалению Exception:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "Mon Dec 31 22:05:34 CET 2007"

может че неправильно делаю, кто-нибудь знает ?
PM MAIL   Вверх
LSD
Дата 19.3.2006, 02:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Метод getValue() возвращает объект типа Date, соответсвенно метод toString() у него выдаст дату (что и видно из сообщения об ошибке). Тебе надо получить дату и выделить из нее год:
Код
Calendar calendar = Calendar.getInstance();
calendar.setTime((Date) projektBeginnJahr.getValue());
int projekt = calendar.get(Calendar.YEAR);



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


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

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