0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>Определение</a><ul><li><a>AWT или Swing: ключевые отличия</a></li>
1
<ul><li><a>Определение</a><ul><li><a>AWT или Swing: ключевые отличия</a></li>
2
<li><a>О контейнерных классах</a></li>
2
<li><a>О контейнерных классах</a></li>
3
</ul></li>
3
</ul></li>
4
<li><a>Основные интерфейсные составляющие</a><ul><li><a>События</a></li>
4
<li><a>Основные интерфейсные составляющие</a><ul><li><a>События</a></li>
5
<li><a>Стандартные компоновщики</a></li>
5
<li><a>Стандартные компоновщики</a></li>
6
</ul></li>
6
</ul></li>
7
<li><a>Кнопки</a><ul><li><a>Настройки, свойства, события</a></li>
7
<li><a>Кнопки</a><ul><li><a>Настройки, свойства, события</a></li>
8
</ul></li>
8
</ul></li>
9
<li><a> Списки - что знать</a><ul><li><a>Модели списков</a><ul><li><a>AbstractListModel</a></li>
9
<li><a> Списки - что знать</a><ul><li><a>Модели списков</a><ul><li><a>AbstractListModel</a></li>
10
</ul></li>
10
</ul></li>
11
<li><a>Выделение</a></li>
11
<li><a>Выделение</a></li>
12
<li><a>Методы получения информации о выделенных компонентах</a></li>
12
<li><a>Методы получения информации о выделенных компонентах</a></li>
13
<li><a>Настройка вида</a></li>
13
<li><a>Настройка вида</a></li>
14
<li><a>Слушатель событий</a></li>
14
<li><a>Слушатель событий</a></li>
15
</ul></li>
15
</ul></li>
16
<li><a>Выпадающий список - пример и особенности</a></li>
16
<li><a>Выпадающий список - пример и особенности</a></li>
17
</ul><p>Приложение - это не только программный код. При написании любой программы необходимо позаботиться о так называемом графическом интерфейсе. Говоря простыми словами - то, как будет выглядеть контент.</p>
17
</ul><p>Приложение - это не только программный код. При написании любой программы необходимо позаботиться о так называемом графическом интерфейсе. Говоря простыми словами - то, как будет выглядеть контент.</p>
18
<p>Программное обеспечение создается для того, чтобы им могли пользоваться не только опытные программеры, но и обычные ПК пользователи. Поэтому графическая составляющая при коддинге крайне важна. Для ее реализации в языках программирования есть библиотеки, а также дополнительные утилиты. В данной статье будет рассказано о том, как создавать списки в Java, а также работать со Swing.</p>
18
<p>Программное обеспечение создается для того, чтобы им могли пользоваться не только опытные программеры, но и обычные ПК пользователи. Поэтому графическая составляющая при коддинге крайне важна. Для ее реализации в языках программирования есть библиотеки, а также дополнительные утилиты. В данной статье будет рассказано о том, как создавать списки в Java, а также работать со Swing.</p>
19
<h2>Определение</h2>
19
<h2>Определение</h2>
20
<p>Swing - простой инструмент Джавы, оснащенный графическим интерфейсом. Обладает огромным количество виджетов для того, чтобы создавать разнообразное программное обеспечение. Является частью JFC. Основывается на AWT API.</p>
20
<p>Swing - простой инструмент Джавы, оснащенный графическим интерфейсом. Обладает огромным количество виджетов для того, чтобы создавать разнообразное программное обеспечение. Является частью JFC. Основывается на AWT API.</p>
21
<p>Ключевым преимуществом является то, что данный инструментарий полностью написан на Java. Это позволяет полноценно использовать возможности "утилиты" при коддинге на соответствующем языке программирования. Обладает легкими компонентами и никак не зависит от задействованной платформы.</p>
21
<p>Ключевым преимуществом является то, что данный инструментарий полностью написан на Java. Это позволяет полноценно использовать возможности "утилиты" при коддинге на соответствующем языке программирования. Обладает легкими компонентами и никак не зависит от задействованной платформы.</p>
22
<p>Позволяет создавать:</p>
22
<p>Позволяет создавать:</p>
23
<ul><li>"перечисления";</li>
23
<ul><li>"перечисления";</li>
24
<li>флажки;</li>
24
<li>флажки;</li>
25
<li>кнопки;</li>
25
<li>кнопки;</li>
26
<li>иные элементы интерфейса, которые может использовать простой пользователь.</li>
26
<li>иные элементы интерфейса, которые может использовать простой пользователь.</li>
27
</ul><p>Swing - библиотека, предназначенная для формирования графического интерфейса на Джаве. Схож с AWT по предназначению, но обладает рядом отличительных преимуществ.</p>
27
</ul><p>Swing - библиотека, предназначенная для формирования графического интерфейса на Джаве. Схож с AWT по предназначению, но обладает рядом отличительных преимуществ.</p>
28
<h3>AWT или Swing: ключевые отличия</h3>
28
<h3>AWT или Swing: ключевые отличия</h3>
29
<p>Для того, чтобы создать new interface, можно использовать обе "технологии". Но, чтобы итоговый продукт был максимально комфортным и легким для понимания, предстоит остановиться на одном из предложенных вариантов.</p>
29
<p>Для того, чтобы создать new interface, можно использовать обе "технологии". Но, чтобы итоговый продукт был максимально комфортным и легким для понимания, предстоит остановиться на одном из предложенных вариантов.</p>
30
<p>Реализация поставленной задачи зависит от того, насколько хорошо разработчик понимает, что такое AWT и Swing. Таблица ниже поможет разобраться в разнице между соответствующими инструментами.</p>
30
<p>Реализация поставленной задачи зависит от того, насколько хорошо разработчик понимает, что такое AWT и Swing. Таблица ниже поможет разобраться в разнице между соответствующими инструментами.</p>
31
AWTSwingЧувствительна к платформе, на которой запускаетсяПлатформо-независимый вариантОтсутствует соответствие MVCИмеет место соответствие MVCИспользует относительно небольшой пакет компонентовПозволяет использовать мощный функционал для создания new list и интерфейсовНет поддержки подключаемого внешнего вида и ощущенияВнешний вид может быть подключенТяжелаяЛегкая<p>Из всего вышесказанного следует, что знать основы Swing при работе с Java - это значит облегчить себе процесс коддинга. Такой вариант идеально подходит для сложных и тяжеловесных проектов.</p>
31
AWTSwingЧувствительна к платформе, на которой запускаетсяПлатформо-независимый вариантОтсутствует соответствие MVCИмеет место соответствие MVCИспользует относительно небольшой пакет компонентовПозволяет использовать мощный функционал для создания new list и интерфейсовНет поддержки подключаемого внешнего вида и ощущенияВнешний вид может быть подключенТяжелаяЛегкая<p>Из всего вышесказанного следует, что знать основы Swing при работе с Java - это значит облегчить себе процесс коддинга. Такой вариант идеально подходит для сложных и тяжеловесных проектов.</p>
32
<h3>О контейнерных классах</h3>
32
<h3>О контейнерных классах</h3>
33
<p>Класс, имеющий те или иные компоненты в своем составе - это контейнерный класс. Для того, чтобы создавать утилиты с графическими интерфейсами, требуется минимум один класс контейнеров.</p>
33
<p>Класс, имеющий те или иные компоненты в своем составе - это контейнерный класс. Для того, чтобы создавать утилиты с графическими интерфейсами, требуется минимум один класс контейнеров.</p>
34
<p>Они бывают верхнего и нижнего уровней. К первой категории относят:</p>
34
<p>Они бывают верхнего и нижнего уровней. К первой категории относят:</p>
35
<ul><li>JApplet - главное окно апплета;</li>
35
<ul><li>JApplet - главное окно апплета;</li>
36
<li>JFrame - окошко того или иного приложения;</li>
36
<li>JFrame - окошко того или иного приложения;</li>
37
<li>JColorChooser - выбор цветовой гаммы;</li>
37
<li>JColorChooser - выбор цветовой гаммы;</li>
38
<li>JFileChooser - определение спектра директорий и файлов;</li>
38
<li>JFileChooser - определение спектра директорий и файлов;</li>
39
<li>FileDialog - аналогично предыдущему варианту, но является компонентом AWT.</li>
39
<li>FileDialog - аналогично предыдущему варианту, но является компонентом AWT.</li>
40
</ul><p>Нижний уровень называется простым. Сюда относят:</p>
40
</ul><p>Нижний уровень называется простым. Сюда относят:</p>
41
<ul><li>панели для группировки элементов, инструментов;</li>
41
<ul><li>панели для группировки элементов, инструментов;</li>
42
<li>прокрутку;</li>
42
<li>прокрутку;</li>
43
<li>контейнеры, отвечающие за создание рабочего стола на основе MDI;</li>
43
<li>контейнеры, отвечающие за создание рабочего стола на основе MDI;</li>
44
<li>"оболочки" отображения сложных RTF или HTML;</li>
44
<li>"оболочки" отображения сложных RTF или HTML;</li>
45
<li>управление закладками;</li>
45
<li>управление закладками;</li>
46
<li>контейнер разделения двух элементов, позволяющий юзерам производить корректировки размера оных.</li>
46
<li>контейнер разделения двух элементов, позволяющий юзерам производить корректировки размера оных.</li>
47
</ul><p>В контейнерном классе и интерфейсах можно использовать разнообразные элементы в виде контейнеров.</p>
47
</ul><p>В контейнерном классе и интерфейсах можно использовать разнообразные элементы в виде контейнеров.</p>
48
<h2>Основные интерфейсные составляющие</h2>
48
<h2>Основные интерфейсные составляющие</h2>
49
<p>Если в качестве "оболочки" используется элемент управления, будет иметь место наследование от определенного класса. Он носит название java.awt.Container.</p>
49
<p>Если в качестве "оболочки" используется элемент управления, будет иметь место наследование от определенного класса. Он носит название java.awt.Container.</p>
50
<p>Сюда можно отнести:</p>
50
<p>Сюда можно отнести:</p>
51
<ul><li>кнопки;</li>
51
<ul><li>кнопки;</li>
52
<li>кнопки-флажки;</li>
52
<li>кнопки-флажки;</li>
53
<li>выпадающий список (JComboBox);</li>
53
<li>выпадающий список (JComboBox);</li>
54
<li>метки и надписи;</li>
54
<li>метки и надписи;</li>
55
<li>обычные списки;</li>
55
<li>обычные списки;</li>
56
<li>поля скрытого ввода информации;</li>
56
<li>поля скрытого ввода информации;</li>
57
<li>отображение чисел в установленных диапазонах;</li>
57
<li>отображение чисел в установленных диапазонах;</li>
58
<li>переключатели;</li>
58
<li>переключатели;</li>
59
<li>компоненты, дающие возможность выбирать значения из установленного диапазона или последовательности;</li>
59
<li>компоненты, дающие возможность выбирать значения из установленного диапазона или последовательности;</li>
60
<li>таблицы;</li>
60
<li>таблицы;</li>
61
<li>текстовые поля;</li>
61
<li>текстовые поля;</li>
62
<li>деревья.</li>
62
<li>деревья.</li>
63
</ul><p>Сегодня, изучив основы Свинг, будет предложено создать выпадающий список в Java приложении. Это не так трудно, как может показаться изначально. Особенно если хорошенько изучить рассматриваемый инструментарий.</p>
63
</ul><p>Сегодня, изучив основы Свинг, будет предложено создать выпадающий список в Java приложении. Это не так трудно, как может показаться изначально. Особенно если хорошенько изучить рассматриваемый инструментарий.</p>
64
<h3>События</h3>
64
<h3>События</h3>
65
<p>При работе с графическим интерфейсом происходит создание new событий. Вот и примеры:</p>
65
<p>При работе с графическим интерфейсом происходит создание new событий. Вот и примеры:</p>
66
<ul><li>ActionEvent - определяется тем или иным компонентом;</li>
66
<ul><li>ActionEvent - определяется тем или иным компонентом;</li>
67
<li>KeyEvent - ввод с клавиатуры;</li>
67
<li>KeyEvent - ввод с клавиатуры;</li>
68
<li>ItemEvent - выбор или отмена оного;</li>
68
<li>ItemEvent - выбор или отмена оного;</li>
69
<li>MouseEvent - события, связанные с мышкой;</li>
69
<li>MouseEvent - события, связанные с мышкой;</li>
70
<li>WindowEvent - события окошка ПО (активация, свертывание, корректировка).</li>
70
<li>WindowEvent - события окошка ПО (активация, свертывание, корректировка).</li>
71
</ul><p>Для того, чтобы обрабатывать события элементов, требуется зарегистрировать объект-обработчик в качестве слушателя. Тут на помощь приходит метод addYYYListener. Непосредственная обработка осуществляется через интерфейс, который соответствует выбранному объекту.</p>
71
</ul><p>Для того, чтобы обрабатывать события элементов, требуется зарегистрировать объект-обработчик в качестве слушателя. Тут на помощь приходит метод addYYYListener. Непосредственная обработка осуществляется через интерфейс, который соответствует выбранному объекту.</p>
72
<h3>Стандартные компоновщики</h3>
72
<h3>Стандартные компоновщики</h3>
73
<p>При коддинге списка или интерфейса через Swing нужно помнить, что тут есть автоматическое позиционирование, а также задание габаритов дочерних элементов. Делается все это в случае с контейнерами через компоновщики.</p>
73
<p>При коддинге списка или интерфейса через Swing нужно помнить, что тут есть автоматическое позиционирование, а также задание габаритов дочерних элементов. Делается все это в случае с контейнерами через компоновщики.</p>
74
<p>Вот стандартные элементы подобного вида:</p>
74
<p>Вот стандартные элементы подобного вида:</p>
75
<ul><li>BorderLayout - размещение элементов в один из 5 регионов, как при добавлении в контейнер;</li>
75
<ul><li>BorderLayout - размещение элементов в один из 5 регионов, как при добавлении в контейнер;</li>
76
<li>FlowLayout - элементы по порядку, соответствуя ориентации контейнера (изначально - слева на право);</li>
76
<li>FlowLayout - элементы по порядку, соответствуя ориентации контейнера (изначально - слева на право);</li>
77
<li>GridLayout - табличное размещение;</li>
77
<li>GridLayout - табличное размещение;</li>
78
<li>BoxLayout - отображение по вертикали/горизонтали;</li>
78
<li>BoxLayout - отображение по вертикали/горизонтали;</li>
79
<li>SpringLayout - низкоуровневый менеджер для утилит построителей форм;</li>
79
<li>SpringLayout - низкоуровневый менеджер для утилит построителей форм;</li>
80
</ul><p>Есть еще и GroupLayout. Тоже создавался для построителей форм. На практике используется не слишком часто, хоть и относится к стандартным.</p>
80
</ul><p>Есть еще и GroupLayout. Тоже создавался для построителей форм. На практике используется не слишком часто, хоть и относится к стандартным.</p>
81
<h2>Кнопки</h2>
81
<h2>Кнопки</h2>
82
<p>Работая в Джаве с interface, стоит знать не только о том, как создавать new списки, но и применять кнопки. Ниже можно увидеть пример элементарного соответствующего элемента управления:</p>
82
<p>Работая в Джаве с interface, стоит знать не только о том, как создавать new списки, но и применять кнопки. Ниже можно увидеть пример элементарного соответствующего элемента управления:</p>
83
<p>Основная работа с new button - это преимущественно размещение в контейнере, а также задействованием обработчика событий.</p>
83
<p>Основная работа с new button - это преимущественно размещение в контейнере, а также задействованием обработчика событий.</p>
84
<p>Если говорить об интерфейсе, то кнопки JButton легко корректируются. Менеджер изменяться не будет. Вот пример того, как будет выглядеть код в Свинг для упомянутого элемента управления различных форм:</p>
84
<p>Если говорить об интерфейсе, то кнопки JButton легко корректируются. Менеджер изменяться не будет. Вот пример того, как будет выглядеть код в Свинг для упомянутого элемента управления различных форм:</p>
85
// Класс относительно того, как будут выглядеть new JButton import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.ActionEvent; import java.awt.event.ItemListener; import java.awt.event.ActionListener; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class ButtonStylesTest extends JFrame { private static final long serialVersionUID = 1L; public ButtonStylesTest() { super("Интерфейсы кнопок"); setDefaultCloseOperation( EXIT_ON_CLOSE ); // Установка последовательного положения Container container = getContentPane(); container.setLayout(new FlowLayout( FlowLayout.LEFT, 10, 10)); // Самая обычная кнопка JButton button = new JButton("Обычная кнопка"); // Коннектинг слушателя событий button.addActionListener(new ListenerAction()); button.addChangeListener(new ListenerChange()); // Подключение слушателя на месте button.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { System.out.println("Это событие мы не увидим"); }}); container.add(button); // Кнопка, содержащая значки (картинки/символы) button = new JButton(); button.setIcon (new ImageIcon("images/copy.png")); button.setRolloverIcon(new ImageIcon("images/cut.png" )); button.setPressedIcon (new ImageIcon("images/open.png")); button.setDisabledIcon(new ImageIcon("images/save.png")); // Избавление от рамок и заливки button.setBorderPainted(false); button.setFocusPainted(false); button.setContentAreaFilled(false); container.add(button); // Описание интерфейса в HTML (new button) button = new JButton("<html><h2><font color=\"yellow\">Синяя кнопка"); // button.setOpaque(true); button.setBackground(Color.blue); container.add(button); // Корректировка выравнивания и изображений button = new JButton("Изменение выравнивания", new ImageIcon("images/exit.png")); button.setMargin (new Insets(10, 10, 10, 10)); button.setVerticalAlignment (SwingConstants.TOP ); button.setHorizontalAlignment (SwingConstants.RIGHT ); button.setHorizontalTextPosition(SwingConstants.LEFT ); button.setVerticalTextPosition (SwingConstants.BOTTOM); button.setIconTextGap(10); // Создание большого элемента управления button.setPreferredSize(new Dimension(300, 100)); container.add(button); // Отключенная кнопка button = new JButton("Выключено"); button.setEnabled(false); container.add(button); // Вывод окна на дисплей устройства setSize(400, 350); setVisible(true); } class ListenerAction implements ActionListener { public void actionPerformed(ActionEvent e) { System.out.println("Нажатие кнопки! От - "+ e.getActionCommand() + "\n"); }<p>Это - пример использования JButton в Java. Если скомпилировать кодификацию, получится лицезреть несколько кнопок - обычную, синюю, с подписями "Изменение выравнивания" и "Выключено".</p>
85
// Класс относительно того, как будут выглядеть new JButton import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.ActionEvent; import java.awt.event.ItemListener; import java.awt.event.ActionListener; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class ButtonStylesTest extends JFrame { private static final long serialVersionUID = 1L; public ButtonStylesTest() { super("Интерфейсы кнопок"); setDefaultCloseOperation( EXIT_ON_CLOSE ); // Установка последовательного положения Container container = getContentPane(); container.setLayout(new FlowLayout( FlowLayout.LEFT, 10, 10)); // Самая обычная кнопка JButton button = new JButton("Обычная кнопка"); // Коннектинг слушателя событий button.addActionListener(new ListenerAction()); button.addChangeListener(new ListenerChange()); // Подключение слушателя на месте button.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { System.out.println("Это событие мы не увидим"); }}); container.add(button); // Кнопка, содержащая значки (картинки/символы) button = new JButton(); button.setIcon (new ImageIcon("images/copy.png")); button.setRolloverIcon(new ImageIcon("images/cut.png" )); button.setPressedIcon (new ImageIcon("images/open.png")); button.setDisabledIcon(new ImageIcon("images/save.png")); // Избавление от рамок и заливки button.setBorderPainted(false); button.setFocusPainted(false); button.setContentAreaFilled(false); container.add(button); // Описание интерфейса в HTML (new button) button = new JButton("<html><h2><font color=\"yellow\">Синяя кнопка"); // button.setOpaque(true); button.setBackground(Color.blue); container.add(button); // Корректировка выравнивания и изображений button = new JButton("Изменение выравнивания", new ImageIcon("images/exit.png")); button.setMargin (new Insets(10, 10, 10, 10)); button.setVerticalAlignment (SwingConstants.TOP ); button.setHorizontalAlignment (SwingConstants.RIGHT ); button.setHorizontalTextPosition(SwingConstants.LEFT ); button.setVerticalTextPosition (SwingConstants.BOTTOM); button.setIconTextGap(10); // Создание большого элемента управления button.setPreferredSize(new Dimension(300, 100)); container.add(button); // Отключенная кнопка button = new JButton("Выключено"); button.setEnabled(false); container.add(button); // Вывод окна на дисплей устройства setSize(400, 350); setVisible(true); } class ListenerAction implements ActionListener { public void actionPerformed(ActionEvent e) { System.out.println("Нажатие кнопки! От - "+ e.getActionCommand() + "\n"); }<p>Это - пример использования JButton в Java. Если скомпилировать кодификацию, получится лицезреть несколько кнопок - обычную, синюю, с подписями "Изменение выравнивания" и "Выключено".</p>
86
<h3>Настройки, свойства, события</h3>
86
<h3>Настройки, свойства, события</h3>
87
<p>Чтобы использовать список и создавать его, в первую очередь разбираются с кнопками. Вот пример настройки интерфейса оных:</p>
87
<p>Чтобы использовать список и создавать его, в первую очередь разбираются с кнопками. Вот пример настройки интерфейса оных:</p>
88
<p>А вот события, которые возникают при работе с рассматриваемым элементом управления:</p>
88
<p>А вот события, которые возникают при работе с рассматриваемым элементом управления:</p>
89
<p>А вот свойства, которые помогают изменять представление иконок:</p>
89
<p>А вот свойства, которые помогают изменять представление иконок:</p>
90
<h2> Списки - что знать</h2>
90
<h2> Списки - что знать</h2>
91
<p>Списки - элементы, применяемые на практике достаточно часто. В интерфейсе без них трудно представить сложную программу. Особенно это касается ПО, где можно что-либо выбирать или добавлять new позиции.</p>
91
<p>Списки - элементы, применяемые на практике достаточно часто. В интерфейсе без них трудно представить сложную программу. Особенно это касается ПО, где можно что-либо выбирать или добавлять new позиции.</p>
92
<p>Они в Джаве бывают двух типов:</p>
92
<p>Они в Джаве бывают двух типов:</p>
93
<ul><li>JLists - обычные;</li>
93
<ul><li>JLists - обычные;</li>
94
<li>JComboBox - выпадающий.</li>
94
<li>JComboBox - выпадающий.</li>
95
</ul><p>У списка (обычного new) два поставщика информации. Первый отвечает за реализацию интерфейса ListModel. В ней находятся элементы списка. Второй это работа с interface ListSelectionModel. Он отвечает за составляющими, которые выделены. Изначально включена поддержка самых важных способов выделения через DefaultListSelectionModel.</p>
95
</ul><p>У списка (обычного new) два поставщика информации. Первый отвечает за реализацию интерфейса ListModel. В ней находятся элементы списка. Второй это работа с interface ListSelectionModel. Он отвечает за составляющими, которые выделены. Изначально включена поддержка самых важных способов выделения через DefaultListSelectionModel.</p>
96
<p>Вот пример использования обычного new списка и моделей Default. Это - самый простой вариант развития событий.</p>
96
<p>Вот пример использования обычного new списка и моделей Default. Это - самый простой вариант развития событий.</p>
97
<h3>Модели списков</h3>
97
<h3>Модели списков</h3>
98
<p>Имея дело со Swing, разрабу предстоит выучить много new информации. Лучше всего создавать списки и другие графические элементы через модели данных. Они дают разграничивать обработку информации от ее представления на дисплее.</p>
98
<p>Имея дело со Swing, разрабу предстоит выучить много new информации. Лучше всего создавать списки и другие графические элементы через модели данных. Они дают разграничивать обработку информации от ее представления на дисплее.</p>
99
<h4>AbstractListModel</h4>
99
<h4>AbstractListModel</h4>
100
<p>Первое, о чем необходимо помнить, желая создать new список. У ListModel всего 4 метода:</p>
100
<p>Первое, о чем необходимо помнить, желая создать new список. У ListModel всего 4 метода:</p>
101
<ul><li>присоединения и удаления слушателей - 2 штуки;</li>
101
<ul><li>присоединения и удаления слушателей - 2 штуки;</li>
102
<li>возврата элемента, находящегося в той или иной позиции списка;</li>
102
<li>возврата элемента, находящегося в той или иной позиции списка;</li>
103
<li>уточнения количества составляющих модели.</li>
103
<li>уточнения количества составляющих модели.</li>
104
</ul><p>Чтобы работать со списками, Свинг обладает стандартной моделью информации DefaultListModel. Она позволяет хранить и корректировать данные предельно комфортно. Иногда требуется создавать собственные new модели данных. Пример - там, где информация располагается в нестандартной структуре.</p>
104
</ul><p>Чтобы работать со списками, Свинг обладает стандартной моделью информации DefaultListModel. Она позволяет хранить и корректировать данные предельно комфортно. Иногда требуется создавать собственные new модели данных. Пример - там, где информация располагается в нестандартной структуре.</p>
105
<p>DatabaseListModel - необходим для абстрактного класса моделей списков. Содержит информацию в динамическом массиве ArrayList.</p>
105
<p>DatabaseListModel - необходим для абстрактного класса моделей списков. Содержит информацию в динамическом массиве ArrayList.</p>
106
<h3>Выделение</h3>
106
<h3>Выделение</h3>
107
<p>JList - это new список (или уже созданный список), у которого есть модель выделения. Называется DefaultListSelectionModel. Обладает несколькими режимами выделения составляющих списка. Вот режимы оных:</p>
107
<p>JList - это new список (или уже созданный список), у которого есть модель выделения. Называется DefaultListSelectionModel. Обладает несколькими режимами выделения составляющих списка. Вот режимы оных:</p>
108
РежимЗа что отвечаетSINGLE_SELECTIONВыделяет один компонент спискаSINGLE_INTERVAL_SELECTIONНесколько смежных составляющих спискаMULTIPLE_INTERVAL_SELECTIONНесколько позиций списка произвольно<p>А вот самые распространенные методы модели выделения jlist-компонентов:</p>
108
РежимЗа что отвечаетSINGLE_SELECTIONВыделяет один компонент спискаSINGLE_INTERVAL_SELECTIONНесколько смежных составляющих спискаMULTIPLE_INTERVAL_SELECTIONНесколько позиций списка произвольно<p>А вот самые распространенные методы модели выделения jlist-компонентов:</p>
109
<ul><li>setSelectedIndex (int idx) - один элемент в списке;</li>
109
<ul><li>setSelectedIndex (int idx) - один элемент в списке;</li>
110
<li>setSelectionInterval (int anchor, int lead) - несколько смежных компонентов;</li>
110
<li>setSelectionInterval (int anchor, int lead) - несколько смежных компонентов;</li>
111
<li>addSelectionInterval (int anchor, int lead) - прибавление в имеющемуся выделению еще одну позицию;</li>
111
<li>addSelectionInterval (int anchor, int lead) - прибавление в имеющемуся выделению еще одну позицию;</li>
112
<li>setSelectedIndices (int[] rows) - несколько выделенных произвольно составляющих.</li>
112
<li>setSelectedIndices (int[] rows) - несколько выделенных произвольно составляющих.</li>
113
</ul><p>Второй и третий варианты как параметры задействуют первые и последние выделяемые компоненты списка. Если оба одинаковые, выделится один "объект".</p>
113
</ul><p>Второй и третий варианты как параметры задействуют первые и последние выделяемые компоненты списка. Если оба одинаковые, выделится один "объект".</p>
114
<p>А вот наглядный пример реализации. Разобраться в нем, благодаря комментариям и предложенной информации, не так уж трудно.</p>
114
<p>А вот наглядный пример реализации. Разобраться в нем, благодаря комментариям и предложенной информации, не так уж трудно.</p>
115
<h3>Методы получения информации о выделенных компонентах</h3>
115
<h3>Методы получения информации о выделенных компонентах</h3>
116
<p>Это - стандартные возможности, предусматриваемые DefaultListSelectionModel. Их достаточно для большинства new приложений и списков. Собственная модель может быть создана при помощи такого шаблона:</p>
116
<p>Это - стандартные возможности, предусматриваемые DefaultListSelectionModel. Их достаточно для большинства new приложений и списков. Собственная модель может быть создана при помощи такого шаблона:</p>
117
<p>Тут предопределены два метода: добавление нового элемента выделения в списке к имеющемуся, а также определение интервала выделения.</p>
117
<p>Тут предопределены два метода: добавление нового элемента выделения в списке к имеющемуся, а также определение интервала выделения.</p>
118
<h3>Настройка вида</h3>
118
<h3>Настройка вида</h3>
119
<p>Пример jlist в Java был представлен ранее. После того, как список будет создан, его можно откорректировать. Вот свойства и методы определения интерфейса списков:</p>
119
<p>Пример jlist в Java был представлен ранее. После того, как список будет создан, его можно откорректировать. Вот свойства и методы определения интерфейса списков:</p>
120
СвойстваХарактеристикаbackground, foreground, fontФон и цвет символов, шрифтselectedBackgroundЗаливка выделенных составляющихselectedForegroundЦветовая гамма символов выделенных компонентов<p>Данные свойства в списке (new или уже созданном ранее) помогут произвести стилистическую настройку.</p>
120
СвойстваХарактеристикаbackground, foreground, fontФон и цвет символов, шрифтselectedBackgroundЗаливка выделенных составляющихselectedForegroundЦветовая гамма символов выделенных компонентов<p>Данные свойства в списке (new или уже созданном ранее) помогут произвести стилистическую настройку.</p>
121
<h3>Слушатель событий</h3>
121
<h3>Слушатель событий</h3>
122
<p>Списки jlist включают в себя стандартные события от клавиатуры и мыши. Относятся к базовому компоненту JComponent. Дополнительные события осуществляются непосредственно в моделях оного.</p>
122
<p>Списки jlist включают в себя стандартные события от клавиатуры и мыши. Относятся к базовому компоненту JComponent. Дополнительные события осуществляются непосредственно в моделях оного.</p>
123
<p>Здесь по умолчанию нет двойных щелчков мышкой. Средства по их определению тоже отсутствуют. Но при желании можно добавить их посредством слушателя обработки событий клавиш мышки.</p>
123
<p>Здесь по умолчанию нет двойных щелчков мышкой. Средства по их определению тоже отсутствуют. Но при желании можно добавить их посредством слушателя обработки событий клавиш мышки.</p>
124
<h2>Выпадающий список - пример и особенности</h2>
124
<h2>Выпадающий список - пример и особенности</h2>
125
<p>Такой вариант позволяет выбирать один элемент из нескольких изначально доступных. За подобные действия в Swing отвечает JComboBox. В обычном состоянии он отображает только один компонент -тот, что был выбран. Альтернативы возникают во всплывающем окошке при раскрытии "перечня".</p>
125
<p>Такой вариант позволяет выбирать один элемент из нескольких изначально доступных. За подобные действия в Swing отвечает JComboBox. В обычном состоянии он отображает только один компонент -тот, что был выбран. Альтернативы возникают во всплывающем окошке при раскрытии "перечня".</p>
126
<p>Особенности такого объекта:</p>
126
<p>Особенности такого объекта:</p>
127
<ul><li>поддержка выбора одного компонента из представленных;</li>
127
<ul><li>поддержка выбора одного компонента из представленных;</li>
128
<li>редактирование текущего элемента;</li>
128
<li>редактирование текущего элемента;</li>
129
<li>ввод собственных значений;</li>
129
<li>ввод собственных значений;</li>
130
<li>возможность поиска посредством клавиатуры.</li>
130
<li>возможность поиска посредством клавиатуры.</li>
131
</ul><p>Использует подобный "перечень" одну модель - которая предоставляет сведения об элементах оного. Свойства модели определяются интерфейсом ComboBoxModel, который наследуется от ListModel.</p>
131
</ul><p>Использует подобный "перечень" одну модель - которая предоставляет сведения об элементах оного. Свойства модели определяются интерфейсом ComboBoxModel, который наследуется от ListModel.</p>
132
<p>Вот пример раскрывающегося перечня:</p>
132
<p>Вот пример раскрывающегося перечня:</p>
133
<p>Результат будет таким:</p>
133
<p>Результат будет таким:</p>
134
<p>С основами Swing покончено. А для того, чтобы лучше изучить данную область и такие фразы как new jpanel, int I, public static void, args, string, static void main, array и другие понятия программирования не вызывали никаких вопросов, стоит обратить внимание на специализированные курсы.</p>
134
<p>С основами Swing покончено. А для того, чтобы лучше изучить данную область и такие фразы как new jpanel, int I, public static void, args, string, static void main, array и другие понятия программирования не вызывали никаких вопросов, стоит обратить внимание на специализированные курсы.</p>
135
<p>Они позволяют получить:</p>
135
<p>Они позволяют получить:</p>
136
<ul><li>новые выгодные и интересные знакомства;</li>
136
<ul><li>новые выгодные и интересные знакомства;</li>
137
<li>опыт работы с Джавой и его инструментами;</li>
137
<li>опыт работы с Джавой и его инструментами;</li>
138
<li>сертификат по завершению обучения.</li>
138
<li>сертификат по завершению обучения.</li>
139
</ul><p>Проводятся в очной и дистанционной формах. Могут запускаться в любое время, что делает такие курсы предельно удобными. new actionlistener и другие термины программирования не доставит никаких хлопот.</p>
139
</ul><p>Проводятся в очной и дистанционной формах. Могут запускаться в любое время, что делает такие курсы предельно удобными. new actionlistener и другие термины программирования не доставит никаких хлопот.</p>
140
<p>Обучение рассчитано на срок от нескольких месяцев до года. Курсы делятся по уровню навыков и знаний потенциального ученика.</p>
140
<p>Обучение рассчитано на срок от нескольких месяцев до года. Курсы делятся по уровню навыков и знаний потенциального ученика.</p>
141
<a></a>
141
<a></a>