HTML Diff
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("&lt;html&gt;&lt;h2&gt;&lt;font color=\"yellow\"&gt;Синяя кнопка"); // 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("&lt;html&gt;&lt;h2&gt;&lt;font color=\"yellow\"&gt;Синяя кнопка"); // 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>