## Графические библиотеки Java
- **Abstract Windows Toolkit (AWT)** - поставляется с JDK, каждый компонент AWT имеет свой визуальный компонент (peer) для конкретной ОС
- **Swing** - поставляется с JDK, расширяет классы AWT, не зависит от perr-компонентов ОС
- **Java 3D API** - трехмерная графика
#### Иерархия классов AWT

## Диалоги
Диалоговые окна могут быть модальными (фокус на окне, пока не нажата кнопка) или немодальными.
| Тип диалогового окна | Описание |
| ----------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `INFORMATION_MESSAGE`
 | Диалоговое окно выводит информацию общего назначения со значком соответствующего вида |
| `WARNING_MESSAGE`
 | Диалоговое окно выводит на экран предупреждающую информацию со значком соответствующего вида |
| `QUESTION_MESSAGE`
 | Диалоговое окно вопроса для ввода информации |
| `ERROR_MESSAGE`
 | Диалоговое окно выводит на экран информацию об ошибке со значком соответствующего вида |
| `PLAIN_MESSAGE` | Указывает, что диалоговое окно не принадлежит ни к одному из вышеперечисленных типов. Выводится на экран без стандартного значка |
## Стандартные компоновщики Java
1. Компоновщик **BorderLayout** (полярное размещение)
2. Компоновщик **FlowLayout** (последовательное размещение)
3. Компоновщик **GridLayout** (табличное размещение)
4. Компоновщик **SpringLayout** (относительное размещение)
5. Компоновщик **BoxLayout** (блочное размещение)
## События и "слушатели"
| Интерфейсы | Обработчики события |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `ActionListener` | `actionPerformed(ActionEvent e)` |
| `AdjustmentListener` | `adjustmentValueChanged(AdjustmentEvent e)` |
| `ComponentListener` | `componentResized(ComponentEvent e)`
`componentMoved(CompomentEvent e)`
`componentShown(ComponentEvent e)`
`componentHidden(ComponentEvent e)` |
| `ContainerListener` | `componentAdded(ContainerEvent e)`
`componentRemoved(ContainerEvent e)` |
| `FocusListener` | `focusGained(FocusEvent e)`
`focusLost(FocusEvent e)` |
| `ItemListener` | `itemStateChanged(itemEvent e)` |
| `KeyListener` | `keyPressed(KeyEvent e)`
`keyReleased(KeyEvent e)`
`keyTyped(KeyEvent e)` |
| `MouseListener` | `mouseClicked(MouseEvent e)`
`mousePressed(MouseEvent e)`
`mouseReleased(MouseEvent e)`
`mouseEntered(MouseEvent e)`
`mouseExited(MouseEvent e)` |
| `MouseMotionListener` | `mouseDragged(MouseEvent e)`
`mouseMoved(MouseEvent e)` |
| `TextListener` | `textValueChanged(TextEvent e)` |
| `WindowListener` | `windowOpened(WindowEvent e)`
`windowClosing(WindowEvent e)`
`windowClosed(WindowEvent e)`
`windowIconified(WindowEvent e)`
`windowDeiconified(WindowEvent e)`
`windowActivated(WindowEvent e)` |
## Vaadin
**Vaadin** в переводе с финского - самка молодого оленя.
**Vaadin**:
- Интерфейс пользователя
- Темы
- Источники данных
## Apache Maven
**Maven** в переводе с идиша - накопитель знаний.
**Apache Maven** - инструмент, который можно использовать для создания и управления любым проектом на основе Java:
- Упрощение процесса сборки
- Обеспечение единой системы сборки
- Предоставление качественной информации о проекте
- Поощрение лучших практик разработки