SlideShare une entreprise Scribd logo
1  sur  33
Вводный курс в Java
                        Занятие 3



Александр Русин
e-mail: alexander.rusin@simbirsoft.com
Android Developer
Swing
Swing — библиотека для создания
 графического интерфейса на языке Java.
 Swing был разработан компанией Sun
 Microsystems. Он содержит ряд графических
 компонентов (англ. Swing widgets), таких как
 кнопки, поля ввода, таблицы и т. д.

    Swing относится к библиотеке классов JFC,
    которая представляет собой набор
    библиотек для разработки графических
    оболочек. К этим библиотекам относятся
    Java 2D, Accessibility-API, Drag & Drop-API и
    AWT.
JComponent
    Базовый класс не только для Swing-компонентов, но также
    и для пользовательских компонентов.

     Обеспечивает инфраструктуру окрашивания для всех
    компонентов.

     Знает, как обрабатывать все нажатия клавиш на
    клавиатуре. Подклассы, следовательно, должны только
    прослушивать определённые клавиши.

     Содержит метод add(), который позволяет вам добавить
    другие JComponent. Этим способом вы можете добавить
    любой Swing-компонент к любому другому Swing-
    компоненту для создания вложенных компонентов
    (например, JPanel, содержащую JButton).
Простые
             Swing-виджеты

    JLabel

    Самым основным компонентом в библиотеке
    Swing является JLabel.

    Он делает именно то, чего вы от него
    ожидаете: располагается в нужном месте,
    улучшает вид приложения и описывает
    другие компоненты.

    JLabel
Простые
                Swing-виджеты

    JLabel

    Методы
    
        get/setText(): Получить/установить текст в метке.
    
        get/setIcon(): Получить/установить изображение в метке.
    
        get/setHorizontalAlignment(): Получить/установить
        горизонтальную позицию текста.
    
        get/setVerticalAlignment(): Получить/установить
        вертикальную позицию текста.
    
        get/setDisplayedMnemonic(): Получить/установить
        мнемонику (подчеркнутый символ) для метки.
    
        get/setLabelFor(): Получить/установить компонент, к
        которому присоединена данная метка;
Простые
              Swing-виджеты

    JButton

    Основным активным компонентом в Swing
    является Jbutton

    Нажимаем на нее, и что-то происходит. Что
    именно происходит?

    JButton
Простые
             Swing-виджеты

    JTextField

    Основной текстовый компонент в Swing

    Позволяет пользователям вводить текст в
    UI.

    JTextField
Простые
             Swing-виджеты

    JFrame

    Класс JFrame делает - является
    контейнером, позволяющим добавлять к
    себе другие компоненты для их организации
    и предоставления пользователю.

    JFrame
Простые
                Swing-виджеты

    JFrame

    Методы
    
        get/setTitle(): Получить/установить заголовок фрейма.
    
        get/setState(): Получить/установить состояние фрейма
        (минимизировать, максимизировать и т.д.).
    
        is/setVisible(): Получить/установить видимость фрейма,
        другими словами, отображение на экране.
    
        get/setLocation(): Получить/установить
        месторасположение в окне, где фрейм должен
        появиться.
    
        get/setSize(): Получить/установить размер фрейма.
    
        add(): Добавить компоненты к фрейму.
Пример
HelloWorld
Дополнительные
              Swing-виджеты

    JСomboBox


    Методы
    
        addItem(): Добавить элемент к JcomboBox.
    
        get/setSelectedIndex(): Получить/установить индекс
        выбранного элемента в JcomboBox.
    
        get/setSelectedItem(): Получить/установить
        выбранный объект.
    
        removeAllItems(): Удалить все объекты из
        JcomboBox.
    
        remoteItem(): Удалить конкретный объект из
        JComboBox.
Дополнительные
              Swing-виджеты

    JPasswordField


    Методы
    
        get/setEchoChar(): Получить/установить символ, который
        появляется в JPasswordField при вводе текста. При
        получении пароля символ "echo" не возвращается;
        вместо него возвращается реальный символ.
    
        getText(): Вы не должны использовать эту функцию,
        поскольку она имеет некоторые проблемы с защитой.
    
        getPassword(): Это корректный метод для получения
        пароля из JPasswordField, поскольку возвращает массив
        char[], содержащий пароль.
Дополнительные
              Swing-виджеты

    JСheckBox/JRadioButton




    Методы
    
        add(): Добавить JCheckBox или JRadioButton к
        ButtonGroup.
    
        getElements(): Получить все компоненты в
        ButtonGroup, для того чтобы можно было
        выполнить итерацию по ним для поиска
        выбранного.
Дополнительные
                Swing-виджеты

    JMenu/JMenuItem/JMenuBar




    Методы
    
        JMenuItem и Jmenu:
        −   get/setAccelerator(): Получить/установить комбинацию
            Ctrl+клавиша, используемую в качестве
            клавиатурного сокращения.
        −   get/setText(): Получить/установить текст для меню.
        −   get/setIcon(): Получить/установить изображение,
            используемое в меню.
Дополнительные
               Swing-виджеты

    JSlider

Методы
    
        get/setMinimum(): Получить/установить минимальное
        значение, которое вы можете выбрать.
    
        get/setMaximum(): Получить/установить
        максимальное значение, которое вы можете
        выбрать.
    
        get/setOrientation(): Получить/установить
        ориентацию JSlider (вверх/вниз или вправо/влево).
    
        get/setValue(): Получить/установить начальное
        значение JSlider.
Дополнительные
              Swing-виджеты

    JSpinner

Методы
    
        get/setValue(): Получить/установить начальное значение
        JSpinner, которое в базовом случае должно быть целым
        числом.
    
        getNextValue(): Получить следующее значение, которое
        будет выбрано после нажатия клавиши управления
        курсором "стрелка вверх".
    
        getPreviousValue(): Получить предыдущее значение,
        которое будет выбрано после нажатия клавиши
        управления курсором "стрелка вниз".
Дополнительные
           Swing-виджеты

    JOptionPane

    Полезный класс для предоставления
    способа выдачи и получения простых
    сообщений.
Дополнительные
              Swing-виджеты

    JTextArea




Методы
    
        is/setLineWrap(): Устанавливает, должна ли
        переноситься строка, если она становится
        слишком длинной.
    
        is/setWrapStyleWord(): Устанавливает, должно ли
        переноситься слово на следующую строку, если
        оно слишком длинное.
Дополнительные
                 Swing-виджеты

    JScrollPane
     
         JScrollPane scroll = new JScrollPane(getTextArea());
     
         add(scroll);




    Методы
     
         getHorizontalScrollBar(): Возвращает горизонтальный
         компонент JscrollBar.
     
         getVerticalScrollBar(): Возвращает вертикальный компонент
         JscrollBar.
     
         get/setVerticalScrollBarPolicy(): Аналогично горизонтальной
         функции.
Дополнительные
               Swing-виджеты

    JList



Методы
    
        get/setSelectedIndex(): Получить/установить выбранную строку
        списка; в случае со списками с множественным выбором
        возвращается int[].
    
        get/setSelectionMode(): Как объяснялось ранее,
        получить/установить режим выбора в одиночный выбор,
        одиночный интервал или множественный интервал.
    
        setListData(): Установить данные для использования в JList.
    
        get/setSelectedValue(): Получить выбранный объект (как
        противоположность выбранному номеру строки).
Дополнительные
              Swing-виджеты

    JTable
Дополнительные
             Swing-виджеты

    JTree
Наследование
    Swing
Концепции
                     Swing

    Схемы, модели и события

    Схемы (layout): Swing содержит множество схем, которые
    представляют собой классы, управляющие размещением
    компонентов в приложении и тем, что должно произойти с
    ними при изменении размеров окна приложения или при
    удалении или добавлении компонентов.

    События (event): Вы должны реагировать на нажатия
    клавиши, нажатия кнопки мыши и на все остальное, что
    пользователь может сделать в UI.

    Модели (model): Для более продвинутых компонентов
    (списки, таблицы, деревья) и даже для некоторых более
    простых, например, JComboBox, модели - это самый
    эффективный способ работы с данными.
Схемы (layout)

    FlowLayout

    GridLayout

    BorderLayout

    GridBagLayout

    Совет: Сейчас есть встроенные визуальные
    построители интерфейсов, автоматически
    генерирующий требуемый для
    GridBagLayout код для каждого экрана.
    Используйте их!
События (event)
// Создать JButton
 JButton b = new JButton("Button");
 // Зарегистрировать прослушиватель
 b.addActionListener(new HelloListener());
 class HelloListener implements ActionListener
 {       // Метод интерфейса для получения нажатий кнопки
     public void actionPerformed(ActionEvent e)
     {
         System.out.println("Hello");
     }
 }
События (event)
// myList - это JList, заполненный данными
myList.addListSelectionListener(new ListSelectionListener()
{
     public void valueChanged(ListSelectionEvent e)
     {
         Object o = myList.getSelectedItem();
         System.out.println(o.toString());
     }
}
);
Модели (model)

    Каждый компонент, работающий с
    коллекцией данных в Swing, использует
    концепцию модели, и это предпочтительный
    способ использования и управления
    данными. Он четко отделяет работу UI от
    используемых данных.

    Модель описывает компоненту, как
    отображать коллекцию данных.
Модели (model)

       JComboBox требует от своей модели описания текста
    для отображения в виде вариантов выбора и количества
    существующих вариантов.

      JList тоже требует от своей модели описания текста для
    отображения как вариантов выбора и количества
    существующих вариантов.

      JTable нужно намного больше - он требует от своей
    модели описания количества существующих строк и
    столбцов, названий столбцов, класса каждого столбца и
    текста для отображения в каждой ячейке.

      JTree требует от своей модели описания корневого узла,
    предков и дочерних элементов для всего дерева.
Пример формы
Домашняя работа
1 Реализовать дерево, которое будет
 отображать файловую структуру системы
 ОС(проводник).
2 При клике на узел должно появляться
 диалоговое окно с абсолютным путем к этой
 директории.
Литература

    http://ru.wikibooks.org/wiki/Java/%D0%9F
    %D0%B5%D1%80%D0%B2%D0%BE%D0%B5_%D0%BE%D0%BA
    %D0%BD%D0%BE (пример программы на GuI)

    http://www.ibm.com/developerworks/ru/edu/j-intswing/section5.html
Спасибо за внимание!

Contenu connexe

Tendances

Исключения и ошибки
Исключения и ошибкиИсключения и ошибки
Исключения и ошибкиUnguryan Vitaliy
 
Java. Введение в коллекции. Классы обертки. Перечисленияю
Java. Введение в коллекции. Классы обертки.  ПеречисленияюJava. Введение в коллекции. Классы обертки.  Перечисленияю
Java. Введение в коллекции. Классы обертки. ПеречисленияюUnguryan Vitaliy
 
Шаблоны проектирования в Magento
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в MagentoPavel Usachev
 
Java. Работа с файловой системой. Потоки ввода-вывода.
Java. Работа с файловой системой. Потоки ввода-вывода.Java. Работа с файловой системой. Потоки ввода-вывода.
Java. Работа с файловой системой. Потоки ввода-вывода.Unguryan Vitaliy
 

Tendances (6)

Исключения и ошибки
Исключения и ошибкиИсключения и ошибки
Исключения и ошибки
 
Jquery
JqueryJquery
Jquery
 
Лекция #7. Django ORM
Лекция #7. Django ORMЛекция #7. Django ORM
Лекция #7. Django ORM
 
Java. Введение в коллекции. Классы обертки. Перечисленияю
Java. Введение в коллекции. Классы обертки.  ПеречисленияюJava. Введение в коллекции. Классы обертки.  Перечисленияю
Java. Введение в коллекции. Классы обертки. Перечисленияю
 
Шаблоны проектирования в Magento
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в Magento
 
Java. Работа с файловой системой. Потоки ввода-вывода.
Java. Работа с файловой системой. Потоки ввода-вывода.Java. Работа с файловой системой. Потоки ввода-вывода.
Java. Работа с файловой системой. Потоки ввода-вывода.
 

Similaire à Лекция_3

Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobileUA Mobile
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationAndrii Dzynia
 
Mikhail Valkov_Antipatterns
Mikhail Valkov_AntipatternsMikhail Valkov_Antipatterns
Mikhail Valkov_AntipatternsCiklum
 
Fun with core graphics
Fun with core graphicsFun with core graphics
Fun with core graphicsSoftTechnics
 
Экскурсия по Flutter SDK
Экскурсия по Flutter SDKЭкскурсия по Flutter SDK
Экскурсия по Flutter SDKSergey Penkovsky
 
C# Web. Занятие 11.
C# Web. Занятие 11.C# Web. Занятие 11.
C# Web. Занятие 11.Igor Shkulipa
 
Быть в 10 раз эффективнее благодаря Groovy
Быть в 10 раз эффективнее благодаря GroovyБыть в 10 раз эффективнее благодаря Groovy
Быть в 10 раз эффективнее благодаря GroovyEvgeny Kompaniyets
 
обучение работе с программой Av editor
обучение работе с программой Av editorобучение работе с программой Av editor
обучение работе с программой Av editoranton-mgn
 
Monitoring and Load testing
Monitoring and Load testingMonitoring and Load testing
Monitoring and Load testingFedor Malyshkin
 
Java осень 2014 занятие 3
Java осень 2014 занятие 3Java осень 2014 занятие 3
Java осень 2014 занятие 3Technopark
 
Rich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkRich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkGeorgy Turevich
 
паттерны программирования
паттерны программированияпаттерны программирования
паттерны программированияguestfc8ae0
 
C# Desktop. Занятие 06.
C# Desktop. Занятие 06.C# Desktop. Занятие 06.
C# Desktop. Занятие 06.Igor Shkulipa
 
SECON'2016. Приходько Артём, Модульное JavaScript приложение
SECON'2016. Приходько Артём, Модульное JavaScript приложениеSECON'2016. Приходько Артём, Модульное JavaScript приложение
SECON'2016. Приходько Артём, Модульное JavaScript приложениеSECON
 
Приемочные тесты на огурце
Приемочные тесты на огурцеПриемочные тесты на огурце
Приемочные тесты на огурцеAlexander Byndyu
 
Viper - чистая архитектура iOS-приложения (И. Чирков)
Viper - чистая архитектура iOS-приложения (И. Чирков)Viper - чистая архитектура iOS-приложения (И. Чирков)
Viper - чистая архитектура iOS-приложения (И. Чирков)65apps
 
Автоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows PhoneАвтоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows PhoneCodeFest
 

Similaire à Лекция_3 (20)

Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobile
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test Automation
 
Mikhail Valkov_Antipatterns
Mikhail Valkov_AntipatternsMikhail Valkov_Antipatterns
Mikhail Valkov_Antipatterns
 
Agile Instrumentation
Agile InstrumentationAgile Instrumentation
Agile Instrumentation
 
Fun with core graphics
Fun with core graphicsFun with core graphics
Fun with core graphics
 
Экскурсия по Flutter SDK
Экскурсия по Flutter SDKЭкскурсия по Flutter SDK
Экскурсия по Flutter SDK
 
C# Web. Занятие 11.
C# Web. Занятие 11.C# Web. Занятие 11.
C# Web. Занятие 11.
 
Быть в 10 раз эффективнее благодаря Groovy
Быть в 10 раз эффективнее благодаря GroovyБыть в 10 раз эффективнее благодаря Groovy
Быть в 10 раз эффективнее благодаря Groovy
 
обучение работе с программой Av editor
обучение работе с программой Av editorобучение работе с программой Av editor
обучение работе с программой Av editor
 
Monitoring and Load testing
Monitoring and Load testingMonitoring and Load testing
Monitoring and Load testing
 
Java осень 2014 занятие 3
Java осень 2014 занятие 3Java осень 2014 занятие 3
Java осень 2014 занятие 3
 
Views обзор
Views обзорViews обзор
Views обзор
 
Rich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkRich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend Framework
 
паттерны программирования
паттерны программированияпаттерны программирования
паттерны программирования
 
C# Desktop. Занятие 06.
C# Desktop. Занятие 06.C# Desktop. Занятие 06.
C# Desktop. Занятие 06.
 
SECON'2016. Приходько Артём, Модульное JavaScript приложение
SECON'2016. Приходько Артём, Модульное JavaScript приложениеSECON'2016. Приходько Артём, Модульное JavaScript приложение
SECON'2016. Приходько Артём, Модульное JavaScript приложение
 
Приемочные тесты на огурце
Приемочные тесты на огурцеПриемочные тесты на огурце
Приемочные тесты на огурце
 
Viper - чистая архитектура iOS-приложения (И. Чирков)
Viper - чистая архитектура iOS-приложения (И. Чирков)Viper - чистая архитектура iOS-приложения (И. Чирков)
Viper - чистая архитектура iOS-приложения (И. Чирков)
 
Автоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows PhoneАвтоматизация UI тестирования под Windows и Windows Phone
Автоматизация UI тестирования под Windows и Windows Phone
 
пр 14.docx
пр 14.docxпр 14.docx
пр 14.docx
 

Plus de itc73

Лекция 6
Лекция 6Лекция 6
Лекция 6itc73
 
Верстка лекция 4
Верстка лекция 4Верстка лекция 4
Верстка лекция 4itc73
 
Интегратор Bitrix 6 занятие
Интегратор Bitrix 6 занятиеИнтегратор Bitrix 6 занятие
Интегратор Bitrix 6 занятиеitc73
 
Интегратор Bitrix 6 занятие
Интегратор Bitrix 6 занятиеИнтегратор Bitrix 6 занятие
Интегратор Bitrix 6 занятиеitc73
 
Лекция 5
Лекция 5Лекция 5
Лекция 5itc73
 
Интегратор Bitrix 5 занятие
Интегратор Bitrix 5 занятиеИнтегратор Bitrix 5 занятие
Интегратор Bitrix 5 занятиеitc73
 
Лекция 4
Лекция 4Лекция 4
Лекция 4itc73
 
Интегратор Bitrix 4 занятие
Интегратор Bitrix 4 занятиеИнтегратор Bitrix 4 занятие
Интегратор Bitrix 4 занятиеitc73
 
Верстка_Лекция_3
Верстка_Лекция_3Верстка_Лекция_3
Верстка_Лекция_3itc73
 
Интегратор Bitrix продолжение
Интегратор Bitrix продолжениеИнтегратор Bitrix продолжение
Интегратор Bitrix продолжениеitc73
 
Верстка_Лекция1
Верстка_Лекция1Верстка_Лекция1
Верстка_Лекция1itc73
 
Верстка_Лекция_1
Верстка_Лекция_1Верстка_Лекция_1
Верстка_Лекция_1itc73
 
Верстка_Лекция_1
Верстка_Лекция_1Верстка_Лекция_1
Верстка_Лекция_1itc73
 
Верстка_Лекция2
Верстка_Лекция2Верстка_Лекция2
Верстка_Лекция2itc73
 
Present forms&css
Present forms&cssPresent forms&css
Present forms&cssitc73
 
Интегратор bitrix_ занятие 2
Интегратор bitrix_ занятие 2Интегратор bitrix_ занятие 2
Интегратор bitrix_ занятие 2itc73
 
Интегратор Bitrix_1
Интегратор Bitrix_1Интегратор Bitrix_1
Интегратор Bitrix_1itc73
 
Lec 2 Java
Lec 2 JavaLec 2 Java
Lec 2 Javaitc73
 

Plus de itc73 (18)

Лекция 6
Лекция 6Лекция 6
Лекция 6
 
Верстка лекция 4
Верстка лекция 4Верстка лекция 4
Верстка лекция 4
 
Интегратор Bitrix 6 занятие
Интегратор Bitrix 6 занятиеИнтегратор Bitrix 6 занятие
Интегратор Bitrix 6 занятие
 
Интегратор Bitrix 6 занятие
Интегратор Bitrix 6 занятиеИнтегратор Bitrix 6 занятие
Интегратор Bitrix 6 занятие
 
Лекция 5
Лекция 5Лекция 5
Лекция 5
 
Интегратор Bitrix 5 занятие
Интегратор Bitrix 5 занятиеИнтегратор Bitrix 5 занятие
Интегратор Bitrix 5 занятие
 
Лекция 4
Лекция 4Лекция 4
Лекция 4
 
Интегратор Bitrix 4 занятие
Интегратор Bitrix 4 занятиеИнтегратор Bitrix 4 занятие
Интегратор Bitrix 4 занятие
 
Верстка_Лекция_3
Верстка_Лекция_3Верстка_Лекция_3
Верстка_Лекция_3
 
Интегратор Bitrix продолжение
Интегратор Bitrix продолжениеИнтегратор Bitrix продолжение
Интегратор Bitrix продолжение
 
Верстка_Лекция1
Верстка_Лекция1Верстка_Лекция1
Верстка_Лекция1
 
Верстка_Лекция_1
Верстка_Лекция_1Верстка_Лекция_1
Верстка_Лекция_1
 
Верстка_Лекция_1
Верстка_Лекция_1Верстка_Лекция_1
Верстка_Лекция_1
 
Верстка_Лекция2
Верстка_Лекция2Верстка_Лекция2
Верстка_Лекция2
 
Present forms&css
Present forms&cssPresent forms&css
Present forms&css
 
Интегратор bitrix_ занятие 2
Интегратор bitrix_ занятие 2Интегратор bitrix_ занятие 2
Интегратор bitrix_ занятие 2
 
Интегратор Bitrix_1
Интегратор Bitrix_1Интегратор Bitrix_1
Интегратор Bitrix_1
 
Lec 2 Java
Lec 2 JavaLec 2 Java
Lec 2 Java
 

Лекция_3

  • 1. Вводный курс в Java Занятие 3 Александр Русин e-mail: alexander.rusin@simbirsoft.com Android Developer
  • 2. Swing Swing — библиотека для создания графического интерфейса на языке Java. Swing был разработан компанией Sun Microsystems. Он содержит ряд графических компонентов (англ. Swing widgets), таких как кнопки, поля ввода, таблицы и т. д.  Swing относится к библиотеке классов JFC, которая представляет собой набор библиотек для разработки графических оболочек. К этим библиотекам относятся Java 2D, Accessibility-API, Drag & Drop-API и AWT.
  • 3. JComponent Базовый класс не только для Swing-компонентов, но также и для пользовательских компонентов.  Обеспечивает инфраструктуру окрашивания для всех компонентов.  Знает, как обрабатывать все нажатия клавиш на клавиатуре. Подклассы, следовательно, должны только прослушивать определённые клавиши.  Содержит метод add(), который позволяет вам добавить другие JComponent. Этим способом вы можете добавить любой Swing-компонент к любому другому Swing- компоненту для создания вложенных компонентов (например, JPanel, содержащую JButton).
  • 4. Простые Swing-виджеты  JLabel  Самым основным компонентом в библиотеке Swing является JLabel.  Он делает именно то, чего вы от него ожидаете: располагается в нужном месте, улучшает вид приложения и описывает другие компоненты.  JLabel
  • 5. Простые Swing-виджеты  JLabel  Методы  get/setText(): Получить/установить текст в метке.  get/setIcon(): Получить/установить изображение в метке.  get/setHorizontalAlignment(): Получить/установить горизонтальную позицию текста.  get/setVerticalAlignment(): Получить/установить вертикальную позицию текста.  get/setDisplayedMnemonic(): Получить/установить мнемонику (подчеркнутый символ) для метки.  get/setLabelFor(): Получить/установить компонент, к которому присоединена данная метка;
  • 6. Простые Swing-виджеты  JButton  Основным активным компонентом в Swing является Jbutton  Нажимаем на нее, и что-то происходит. Что именно происходит?  JButton
  • 7. Простые Swing-виджеты  JTextField  Основной текстовый компонент в Swing  Позволяет пользователям вводить текст в UI.  JTextField
  • 8. Простые Swing-виджеты  JFrame  Класс JFrame делает - является контейнером, позволяющим добавлять к себе другие компоненты для их организации и предоставления пользователю.  JFrame
  • 9. Простые Swing-виджеты  JFrame  Методы  get/setTitle(): Получить/установить заголовок фрейма.  get/setState(): Получить/установить состояние фрейма (минимизировать, максимизировать и т.д.).  is/setVisible(): Получить/установить видимость фрейма, другими словами, отображение на экране.  get/setLocation(): Получить/установить месторасположение в окне, где фрейм должен появиться.  get/setSize(): Получить/установить размер фрейма.  add(): Добавить компоненты к фрейму.
  • 11. Дополнительные Swing-виджеты  JСomboBox  Методы  addItem(): Добавить элемент к JcomboBox.  get/setSelectedIndex(): Получить/установить индекс выбранного элемента в JcomboBox.  get/setSelectedItem(): Получить/установить выбранный объект.  removeAllItems(): Удалить все объекты из JcomboBox.  remoteItem(): Удалить конкретный объект из JComboBox.
  • 12. Дополнительные Swing-виджеты  JPasswordField  Методы  get/setEchoChar(): Получить/установить символ, который появляется в JPasswordField при вводе текста. При получении пароля символ "echo" не возвращается; вместо него возвращается реальный символ.  getText(): Вы не должны использовать эту функцию, поскольку она имеет некоторые проблемы с защитой.  getPassword(): Это корректный метод для получения пароля из JPasswordField, поскольку возвращает массив char[], содержащий пароль.
  • 13. Дополнительные Swing-виджеты  JСheckBox/JRadioButton  Методы  add(): Добавить JCheckBox или JRadioButton к ButtonGroup.  getElements(): Получить все компоненты в ButtonGroup, для того чтобы можно было выполнить итерацию по ним для поиска выбранного.
  • 14. Дополнительные Swing-виджеты  JMenu/JMenuItem/JMenuBar  Методы  JMenuItem и Jmenu: − get/setAccelerator(): Получить/установить комбинацию Ctrl+клавиша, используемую в качестве клавиатурного сокращения. − get/setText(): Получить/установить текст для меню. − get/setIcon(): Получить/установить изображение, используемое в меню.
  • 15. Дополнительные Swing-виджеты  JSlider Методы  get/setMinimum(): Получить/установить минимальное значение, которое вы можете выбрать.  get/setMaximum(): Получить/установить максимальное значение, которое вы можете выбрать.  get/setOrientation(): Получить/установить ориентацию JSlider (вверх/вниз или вправо/влево).  get/setValue(): Получить/установить начальное значение JSlider.
  • 16. Дополнительные Swing-виджеты  JSpinner Методы  get/setValue(): Получить/установить начальное значение JSpinner, которое в базовом случае должно быть целым числом.  getNextValue(): Получить следующее значение, которое будет выбрано после нажатия клавиши управления курсором "стрелка вверх".  getPreviousValue(): Получить предыдущее значение, которое будет выбрано после нажатия клавиши управления курсором "стрелка вниз".
  • 17. Дополнительные Swing-виджеты  JOptionPane  Полезный класс для предоставления способа выдачи и получения простых сообщений.
  • 18. Дополнительные Swing-виджеты  JTextArea Методы  is/setLineWrap(): Устанавливает, должна ли переноситься строка, если она становится слишком длинной.  is/setWrapStyleWord(): Устанавливает, должно ли переноситься слово на следующую строку, если оно слишком длинное.
  • 19. Дополнительные Swing-виджеты  JScrollPane  JScrollPane scroll = new JScrollPane(getTextArea());  add(scroll); Методы  getHorizontalScrollBar(): Возвращает горизонтальный компонент JscrollBar.  getVerticalScrollBar(): Возвращает вертикальный компонент JscrollBar.  get/setVerticalScrollBarPolicy(): Аналогично горизонтальной функции.
  • 20. Дополнительные Swing-виджеты  JList Методы  get/setSelectedIndex(): Получить/установить выбранную строку списка; в случае со списками с множественным выбором возвращается int[].  get/setSelectionMode(): Как объяснялось ранее, получить/установить режим выбора в одиночный выбор, одиночный интервал или множественный интервал.  setListData(): Установить данные для использования в JList.  get/setSelectedValue(): Получить выбранный объект (как противоположность выбранному номеру строки).
  • 21. Дополнительные Swing-виджеты  JTable
  • 22. Дополнительные Swing-виджеты  JTree
  • 24. Концепции Swing  Схемы, модели и события  Схемы (layout): Swing содержит множество схем, которые представляют собой классы, управляющие размещением компонентов в приложении и тем, что должно произойти с ними при изменении размеров окна приложения или при удалении или добавлении компонентов.  События (event): Вы должны реагировать на нажатия клавиши, нажатия кнопки мыши и на все остальное, что пользователь может сделать в UI.  Модели (model): Для более продвинутых компонентов (списки, таблицы, деревья) и даже для некоторых более простых, например, JComboBox, модели - это самый эффективный способ работы с данными.
  • 25. Схемы (layout)  FlowLayout  GridLayout  BorderLayout  GridBagLayout  Совет: Сейчас есть встроенные визуальные построители интерфейсов, автоматически генерирующий требуемый для GridBagLayout код для каждого экрана. Используйте их!
  • 26. События (event) // Создать JButton JButton b = new JButton("Button"); // Зарегистрировать прослушиватель b.addActionListener(new HelloListener()); class HelloListener implements ActionListener { // Метод интерфейса для получения нажатий кнопки public void actionPerformed(ActionEvent e) { System.out.println("Hello"); } }
  • 27. События (event) // myList - это JList, заполненный данными myList.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { Object o = myList.getSelectedItem(); System.out.println(o.toString()); } } );
  • 28. Модели (model)  Каждый компонент, работающий с коллекцией данных в Swing, использует концепцию модели, и это предпочтительный способ использования и управления данными. Он четко отделяет работу UI от используемых данных.  Модель описывает компоненту, как отображать коллекцию данных.
  • 29. Модели (model)  JComboBox требует от своей модели описания текста для отображения в виде вариантов выбора и количества существующих вариантов.  JList тоже требует от своей модели описания текста для отображения как вариантов выбора и количества существующих вариантов.  JTable нужно намного больше - он требует от своей модели описания количества существующих строк и столбцов, названий столбцов, класса каждого столбца и текста для отображения в каждой ячейке.  JTree требует от своей модели описания корневого узла, предков и дочерних элементов для всего дерева.
  • 31. Домашняя работа 1 Реализовать дерево, которое будет отображать файловую структуру системы ОС(проводник). 2 При клике на узел должно появляться диалоговое окно с абсолютным путем к этой директории.
  • 32. Литература  http://ru.wikibooks.org/wiki/Java/%D0%9F %D0%B5%D1%80%D0%B2%D0%BE%D0%B5_%D0%BE%D0%BA %D0%BD%D0%BE (пример программы на GuI)  http://www.ibm.com/developerworks/ru/edu/j-intswing/section5.html