Вступ до JToggleButton
JToggleButton - це просто двостайна кнопка, вибрана та знята з вибору. Це компонент Swing. Напевно, ви чули про прапорець і радіо кнопку. Це точно так само. Насправді JRadioButton та JCheckBox - це підкласи класу JToggleButton. Використання JToggleButton полягає у реєстрації вибору користувача між двома варіантами.
Наприклад, у нас може бути декілька JToggleButtons із зазначенням назви мови на кожній кнопці, і користувач буде вибирати / де-вибирати (вибрано за замовчуванням) кожну кнопку, щоб вказати, що він / вона знає / не знає відповідної мови. JToggleButton за замовчуванням знаходиться у вибраному стані.
Декларація JToggleButton
public class JToggleButton
extends AbstractButton
implements Accessible
Де,
- AbstractButton визначає загальні функціональні можливості кнопок і MenuItems.
- Accessible - це основний інтерфейс для пакету доступності. Він містить метод "getAccessibleContext", який повертає AccessibleContext, пов'язаний з цією кнопкою.
Конструктори JToggleButton
Нижче наведено різні конструктори JToggleButton:
- JToggleButton (): Цей конструктор створює невибрану кнопку перемикання без тексту чи зображення.
- JToggleButton (Дія a): Цей конструктор створює кнопку перемикання, яка має властивості від дії, що надається.
- JToggleButton (Строковий текст): Цей конструктор створює невибрану кнопку перемикання із вказаним текстом та відсутністю зображення.
- JToggleButton (Піктограма піктограми): Цей конструктор створює невибрану кнопку перемикання без тексту та заданого зображення.
- JToggleButton (Рядок тексту, значок піктограми): Цей конструктор створює невибрану кнопку перемикання із зазначеним текстом та заданим зображенням.
- JToggleButton (Строковий текст, вибрано булевий): Цей конструктор створює кнопку перемикання без зображення, вказаного тексту та заданого стану вибору.
- JToggleButton (піктограма піктограми вибрана булева): Цей конструктор створює кнопку перемикання без тексту, вказаного зображення та вказаного стану вибору.
- JToggleButton (Рядок тексту, піктограми значка, вибрано булеве значення): це конструктор, у якому можуть бути надані всі три властивості - стан вибору, текст та зображення.
Методи JToggleButton
Нижче наведено різні методи, використовувані в JToggleButton:
- public void setText (Строковий текст): Цей метод встановлює текст, який відображається на кнопці.
- public void setSelected (булева b): Цей метод встановлює стан кнопки. Якщо b відповідає дійсності, кнопка з’явиться вибраною, а якщо b - помилковою, кнопка буде видалена.
- public void setEnabled (булева b): Цей метод використовується для відключення кнопки. Якщо b невірно, кнопка буде сірою, і її більше не можна натискати.
- public void setIcon (Icon defaultIcon): Цей метод встановлює значок цієї кнопки. Цей значок буде використовуватися як значок "натиснутої" та "відключеної", якщо жодна "натиснута" піктограма не встановлена явно.
- public void setPressIcon (Значок натискається): Цей метод встановлює піктограму «натиснута» для цієї кнопки. Цей значок буде показаний у момент, коли користувач натисне кнопку.
- public AccessibleContext getAccessibleContext (): Цей метод повертає доступний контекст, пов'язаний з цією кнопкою.
- захищена String paramString (): Цей метод повертає рядкове представлення цієї кнопки. Цей метод призначений для налагодження. Повернене значення може бути порожнім, але не нульовим.
- public String getUIClassID (): Цей метод повертає назву класу зовнішнього вигляду (l & f) цієї кнопки.
- public void updateUI (): Скидає зовнішній вигляд цієї кнопки.
- public void addActionListener (ActionListener l): Цей метод приєднав слухач дій до цієї кнопки, щоб будь-яку дію, виконану на цій кнопці, можна було вловити на початку.
- public void addItemListener (ItemListener l): Цей метод приєднує прослуховувач елемента до цієї кнопки, щоб вибір і скасування вибору цієї кнопки можна було обробляти на початку.
Програма для впровадження JToggleButton
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JToggleButton;
import javax.swing.SwingConstants;
public class JToggleButtonDemo (
public static void main(String() args) (
JFrame app = new JFrame();
JToggleButton englishLanguage = new JToggleButton("English", true);
JToggleButton hindiLanguage = new JToggleButton();
JToggleButton marathiLanguage = new JToggleButton();
JToggleButton tamilLanguage = new JToggleButton();
app.setSize(400, 400);
app.setLayout(new GridLayout(6, 1));
app.setVisible(true);
englishLanguage.setText("English");
englishLanguage.setBackground(new Color(255, 66, 0));
hindiLanguage.setText("Hindi");
hindiLanguage.setBackground(new Color(255, 66, 0));
marathiLanguage.setText("Marathi");
marathiLanguage.setBackground(new Color(255, 66, 0));
tamilLanguage.setText("Tamil");
tamilLanguage.setBackground(new Color(255, 66, 0));
app.add(englishLanguage);
app.add(hindiLanguage);
app.add(marathiLanguage);
app.add(tamilLanguage);
JLabel action = new JLabel();
app.add(action);
JLabel status = new JLabel("User knows : English");
app.add(status);
ItemListener listener = new ItemListener() (
@Override
public void itemStateChanged(ItemEvent e) (
StringBuilder statusString = new StringBuilder("User knows :");
if (englishLanguage.isSelected()) (
statusString.append(" English");
)
if (hindiLanguage.isSelected()) (
statusString.append(" Hindi");
)
if (marathiLanguage.isSelected()) (
statusString.append(" Marathi");
)
if (tamilLanguage.isSelected()) (
statusString.append(" Tamil");
)
if (englishLanguage.isSelected() == false && hindiLanguage.isSelected() == false
&& marathiLanguage.isSelected() == false && tamilLanguage.isSelected() == false) (
status.setText("User doesn't know any language !!");
) else (
status.setText(statusString.toString());
)
)
);
ActionListener actionListener = new ActionListener() (
@Override
public void actionPerformed(ActionEvent e) (
JToggleButton temp = (JToggleButton) e.getSource();
if (temp.isSelected()) (
action.setText("Current action : " + temp.getActionCommand() + " is selected");
) else (
action.setText("Current action : " + temp.getActionCommand() + " is de-selected");
)
)
);
englishLanguage.addItemListener(listener);
englishLanguage.addActionListener(actionListener);
hindiLanguage.addItemListener(listener);
hindiLanguage.addActionListener(actionListener);
marathiLanguage.addItemListener(listener);
marathiLanguage.addActionListener(actionListener);
tamilLanguage.addItemListener(listener);
tamilLanguage.addActionListener(actionListener);
)
)
Пояснення
- Ця програма дуже проста та зрозуміла. Він збирає інформацію про користувача, які мови він / вона знає.
- Спочатку ми створили кадр розміром 400 на 400 пікселів і маємо один стовпець і п'ять рядків.
- Створено чотири кнопки перемикання для чотирьох різних мов - англійської, хінді, маратхі та тамільської та додано до рамки контейнера.
- Ми встановили колір тла цих кнопок червоний (до відмітки).
- Потім додали мітку в п’ятому ряду у кадрі, щоб показати статус програми.
- Спочатку кнопка для англійської мови вибирається за допомогою конструктора JToggleButton, що означає, що користувач знає англійську мову за замовчуванням, а всі інші кнопки знімаються.
- Щоб вказати відому мову, користувачеві доведеться натиснути (вибрати) конкретну кнопку. Користувачі можуть знову натиснути на вибрану кнопку, щоб зняти її.
- Коли кнопка вибрана або відменена, подія запускається та кешується в ItemListener і стан відповідно змінюється.
- Крім того, для перевірки поточної дії створюється ActionListener і додається до кожної кнопки, щоб, коли мова обрана або скасована, вибрана дія показана користувачеві.
- Використовувані можуть вибирати або де-вибирати одну або кілька мов і відповідно переглядати стан.
Вихід:
1. Це наша програма, в якій англійська мова обрана за замовчуванням.
2. Користувач обрав мову "маратхі", а статус та дії змінено відповідно.
3. Користувач вибрав "англійську" мову, а статус та дії змінено відповідно.
4. Користувач вибрав мову "маратхі", і статус зміниться відповідно.
Висновок
JToggleButton - важливий компонент Swing, який дозволяє легко вказати вибір між двома варіантами відповідей, як-от так чи ні, як зображено в прикладі. Ми також можемо використовувати прапорці або радіо кнопки, які є підкласами JToggleButton.
Рекомендовані статті
Це посібник з JToggleButton. Тут ми обговорюємо конструктори та методи JToggleButton разом із його програмою. Ви також можете переглянути наступні статті, щоб дізнатися більше -
- JPanel на Java
- JButton на Java
- JOptionPane на Java
- JScrollPane на Java
- JFrame на Java
- JLabel на Java
- Як створити RadioButton?