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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TextField. Максимальна длина 
V
    Опции темы
Neox_GeForce
Дата 8.10.2009, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Привет всем! Как установить длину строки для поля?
Например чтобы отображать только 3 символа. 


--------------------
user posted image
Челябинские программисты настолько суровы, что обходятся без компиляторов.
Челябинские программисты настолько суровы, что считают ассемблер недопустительной роскошью - они вручную магнетизируют участки жесткого диска.
PM MAIL ICQ   Вверх
aleksandy
Дата 9.10.2009, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

class FixedLengthDocument extends PlainDocument {
  private int maxLength;

  public FixedLengthDocument(int maxLength) {
    this.maxLength = maxLength;
  }

  public void insertString(int offset, String str, AttributeSet a) throws BadLocationException {
    if (str != null && str.length() + getLength() <= maxLength) {
      super.insertString(offset, str, a);
    }
  }
}

и
Код
JTextField#setDocument(new FixedLengthDocument(3));

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


Опытный
**


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

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



тут используется бибилиотека Swing. A мне нужно только AWT.


--------------------
user posted image
Челябинские программисты настолько суровы, что обходятся без компиляторов.
Челябинские программисты настолько суровы, что считают ассемблер недопустительной роскошью - они вручную магнетизируют участки жесткого диска.
PM MAIL ICQ   Вверх
mgarin
Дата 9.10.2009, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код
        TextField field = new TextField ( );
        field.setColumns ( 3 );


В комментарии метода:

Цитата
    /**
     * Sets the number of columns in this text field. A column is an 
     * approximate average character width that is platform-dependent.
     * @param      columns   the number of columns.
     * @see        java.awt.TextField#getColumns
     * @exception  IllegalArgumentException   if the value
     *                 supplied for <code>columns</code>
     *                 is less than <code>0</code>. 
     * @since      JDK1.1
     */
    public synchronized void setColumns(int columns)


То что надо?
PM MAIL WWW ICQ   Вверх
Neox_GeForce
Дата 9.10.2009, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



нет. Этот метод не устанавливает количество символов в  поле, а ШИРИНУ поля на количество символов. тоесть
Код

field.setColumns ( 3 );

устанавливает ширину поля на 3 символа. Мн нужно чтоб можно было ввести не больше 3-ох символов. 


--------------------
user posted image
Челябинские программисты настолько суровы, что обходятся без компиляторов.
Челябинские программисты настолько суровы, что считают ассемблер недопустительной роскошью - они вручную магнетизируют участки жесткого диска.
PM MAIL ICQ   Вверх
mgarin
Дата 9.10.2009, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата
Привет всем! Как установить длину строки для поля?
Например чтобы отображать только 3 символа. 


Уж как описали smile

Все же, иного выхода я не вижу (учитывая что нужно реализовать в AWT):

Код
        final TextField field = new TextField ();
        field.addKeyListener ( new KeyAdapter()
        {
            public void keyPressed ( KeyEvent e )
            {
                checkSize ();
            }

            public void keyReleased ( KeyEvent e )
            {
                checkSize ();
            }

            private void checkSize ()
            {
                int caret = field.getCaretPosition ();
                if ( field.getText ().length () > 3 )
                {
                    field.setText ( field.getText ().substring ( 0, 3 ) );
                    field.setCaretPosition ( 3 );
                    
                    if ( caret > 3 )
                    {
                        field.setCaretPosition ( 3 );
                    }
                    else
                    {
                        field.setCaretPosition ( caret );
                    }
                }
            }
        } );


Это сообщение отредактировал(а) mgarin - 9.10.2009, 20:56
PM MAIL WWW ICQ   Вверх
Neox_GeForce
Дата 16.10.2009, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



mgarin, спс. Наверное так и зделаю. Думал может есть такая функция.


--------------------
user posted image
Челябинские программисты настолько суровы, что обходятся без компиляторов.
Челябинские программисты настолько суровы, что считают ассемблер недопустительной роскошью - они вручную магнетизируют участки жесткого диска.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0461 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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