Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Компоненты и контейнеры






Компонент – элемент графического интерфейса, который можно использовать независимо от других: кнопка, строка меню, текстовое поле, полоса прокрутки, переключатель.

Контейнер – компонент, который предназначен для хранения других элементов.

Компонент должен обязательно помещен в контейнер (он знает как их рисовать). (Бывает невидимым). Поэтому компонент должен быть помещен в контейнер. Контейнер – тоже компонент, поэтому может содержать другие контейнеры (иерархия контейнеров). В верхней части иерархии – контейнер верхнего уровня. Он не входит в другой контейнер.

 

1. Контейнеры верхнего уровня Swing-тяжелые.

Любая иерархия начинается с них.

 

 

2. Легкие контейнеры – наследники JComponent: JPanel, JScrollPane, JRootPane. Они могут содержаться внутри другого контейнера (для создания групп связанных компонентов и помещения их внутрь внешнего контейнера).

3. Легкие компоненты Swing- производятся от JComponent (кроме контейнеров верхнего уровня). Swing – лежит в пакете javax.swing, классы начинаются с буквы J:

JButton, JList, JCheck, JFrame, JLabel, JTextArea, JTextField, JMenu, JTree, JTable.Построены по архитектуре MVC – Mode l-View-Control

 

V и C объединены вместе и называются-делегат. Model (хранит состояние объекта) – UI Delegate (отвечает за внешний вид). Это архитектура разделеной модели (модель-делегат).

 

Окно верхнего уровня – фрейм.

В AWT – Frame;

В Swing – JFrame.

 

Пример простейшего окна при использовании наследования.

 

import javax.swing.*

class SimpleFrame extends JFrame{//класс определяет ГИП

public SimpleFrame (){ //конструктор

setSize (300, 200); //размеры окна- по умолч.размер 0 Х 0

}

}

 

public class SimpleFrame Test {// класс запускает программу

public static void main (String [] args) {

SimpleFrame frame1 = new SimpleFrame ();

frame1.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

frame1.setVisible (true); //после этого запустится thread GUI.

frame.setLocation (100, 200);

}

}//закончился основной поток, поток ГИП продолжает работать

 

Строка заголовка и пиктограммы размеров окна отображаются ОС. Внутренность окна – библиотекой Swing. Варианты:

 

- метод main () может быть внутри класса JFrame. (нежелательно).

 

- все, кроме создания фрейма (new SimpleFrame ()) может быть в конструкторе (нежелательно).

- может использоваться не наследование, а композиция:

 

class SwingDemo{

 

SwingDemo () {//конструктор

 

JFrame jframe = new JFrame();

jframe.setSize (300, 200);

jframe.setVisible (true);

jframe.setDefault......

}

public static void main (…) {

new Swing Demo ();

}

}

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.