1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wizardforcel-thinking-in-java-zh

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
13.10 下拉列表.md 3.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 11.03.2025 09:15 d56454c

13.10 Выпадающий список

Выпадающий список представляет собой группу радиокнопок, которая заставляет пользователя выбрать один объект из набора возможных вариантов. Этот метод является довольно простым и удобным для изменения выбора без необходимости сложной конфигурации (хотя мы можем динамически менять радиокнопки, это менее удобно). В отличие от Java-компонентов выбора, Windows-компоненты ComboBox позволяют выбирать значение из списка или ввести своё значение. В выпадающем списке можно выбрать только одно значение из списка. В следующем примере выпадающий список начинается с одного начального значения, а при нажатии кнопки новое значение добавляется в список. Вы увидите несколько интересных состояний выпадающего списка:

//: Choice1.java
// Использование выпадающих списков
import java.awt.*;
import java.applet.*;

public class Choice1 extends Applet {
  String[] description = { "Энергичный", "Тупой",
    "Непокорный", "Блестящий", "Сонливый",
    "Страшливый", "Роскошный", "Гнилостный" };
  TextField t = new TextField(30);
  Choice c = new Choice();
  Button b = new Button("Добавить элементы");
  int count = 0;
  public void init() {
    t.setEditable(false);
    for(int i = 0; i < 4; i++)
      c.add(description[count++]);
    add(t);
    add(c);
    add(b);
  }
  public boolean action(Event evt, Object arg) {
    if(evt.target.equals(c))
      t.setText("индекс: " + c.getSelectedIndex()
        + "   " + (String)arg);
    else if(evt.target.equals(b)) {
      if(count < description.length)
        c.add(description[count++]);
    }
    else
      return super.action(evt, arg);
    return true;
  }
} ///:~
```Текстовое поле отображает `выбранный индекс`, то есть порядковый номер текущего выбранного элемента. Строка, выбранная в событии, точно описывает строку второго параметра метода `action()`.

При запуске этого примера обратите внимание на размер выпадающего списка: в Windows этот размер определяется после того, как вы раскроете список. Это значит, что если вы раскроете список, а затем добавите новые элементы, они будут видны, но список больше не будет принимать новых значений (вы можете прокручивать список  примечание ). Однако, если вы добавите все элементы до того, как раскроете список, его размер будет правильным. Конечно, пользователи хотят видеть весь список, поэтому добавление новых элементов после раскрытия списка требует специальных условий.

: Это поведение явно является ошибкой, которую исправили в более поздних версиях Java.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/wizardforcel-thinking-in-java-zh.git
git@api.gitlife.ru:oschina-mirror/wizardforcel-thinking-in-java-zh.git
oschina-mirror
wizardforcel-thinking-in-java-zh
wizardforcel-thinking-in-java-zh
master