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

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

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

13.9 Одиночные кнопки

Одиночная кнопка в концепции графического интерфейса пользователя (GUI) берёт своё начало из механических кнопок старых радиоприёмников с электронными лампами: когда мы нажимаем одну кнопку, остальные автоматически отжимаются. Таким образом, она позволяет нам принудительно выбрать одно значение среди множества вариантов.

AWT не имеет специального класса для одиночной кнопки; вместо этого используются флажки (checkboxes), но они группируются вместе как одиночные кнопки. Для создания такой группы флажков используется специальный конструктор, который принимает объект checkboxGroup в качестве аргумента. Также можно использовать метод setCheckboxGroup() после создания флажка.

Объект checkboxGroup не требует параметров при создании; его единственная цель — объединение нескольких флажков в группу одиночных кнопок. Один из флажков в группе должен иметь состояние true, чтобы группа корректно работала. Если более одного флажка имеют состояние true, то только последний будет считаться активным.

Вот простой пример использования одиночных кнопок. Обратите внимание, что события одиночных кнопок могут быть захвачены так же, как и события других компонентов:

//: RadioButton1.java
// Использование одиночных кнопок
import java.awt.*;
import java.applet.*;
``````java
public class RadioButton1 extends Applet {
  TextField t = new TextField("Single button 2", 30);
  CheckboxGroup g = new CheckboxGroup();
  Checkbox cb1 = new Checkbox("one", g, false),
            cb2 = new Checkbox("two", g, true),
            cb3 = new Checkbox("three", g, false);

  public void init() {
    t.setEditable(false);
    add(t);
    add(cb1); add(cb2); add(cb3);
  }

  public boolean action(Event evt, Object arg) {
    if (evt.target.equals(cb1)) {
      t.setText("Single button 1");
    } else if (evt.target.equals(cb2)) {
      t.setText("Single button 2");
    } else if (evt.target.equals(cb3)) {
      t.setText("Single button 3");
    } else {
      return super.action(evt, arg);
    }
    return true;
  }
} ///:~

Отображаемое состояние представляет собой текстовое поле, используемое для отображения данных. Поле установлено в режим "только чтение", поскольку оно предназначено для отображения информации, а не для сбора ввода. Это демонстрирует подход к использованию меток. Обратите внимание, что текст внутри поля был инициализирован выбором первой одиночной кнопки "Single button 2".

Можно иметь множество групп флажков в окне.

Опубликовать ( 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