Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Компонент Button




Label.

Cursor

Основа класса – статические константы, определяющие форму курсора:

·CROSSHAIR_CURSOR – курсор в виде креста, появляется обычно при поиске позиции для размещения какого-то элемента;

·DEFAULT_CURSOR – обычная форма курсора – стрелка влево вверх;

·HAND_CURSOR – "указующий перст", появляется обычно при выборе какого-то элемента списка;

·MOVE_CURSOR – крест со стрелками, возникает обычно при перемещении элемента;

·TEXT_CURSOR – вертикальная черта, появляется в текстовых полях;

·WAIT_CURSOR – изображение часов, появляется при ожидании.

Следующие курсоры появляются обычно при приближении к краю или углу компонента:

  • E_RESIZE_CURSOR – стрелка вправо с упором;
  • N_RESIZE_CURSOR – стрелка вверх с упором;
  • NE_RESIZE_CURSOR – стрелка вправо вверх, упирающаяся в угол;
  • NW_RESIZE_CURSOR – стрелка влево вверх, упирающаяся в угол;
  • S_RESIZE_CURSOR – стрелка вниз с упором;
  • SE_RESIZE_CURSOR – стрелка вправо вниз, упирающаяся в угол;
  • SW_RESIZE_CURSOR – стрелка влево вниз, упирающаяся в угол;
  • W_RESIZE_CURSOR – стрелка влево с упором.

Перечисленные константы являются аргументом type в конструкторе класса Cursor(int type).

Вместо конструктора можно обратиться к статическому методу getPredefinedCursor(int type), создающему объект класса Cursor и возвращающему ссылку на него.

Получить курсор по умолчанию можно статическим методом getDefauitCursor(). Затем созданный курсор надо установить в компонент. Например, после выполнения:

Cursor curs = new Cursor(Cursor.WAIT_CURSOR);

win.setCursor(curs);

при появлении указателя мыши в компоненте somecomp указатель примет вид часов.

Кроме этих предопределенных курсоров можно задать свою собственную форму курсора. Ее тип носит название CUSTOM_CURSOR. Сформировать свой курсор можно методом

createCustomCursor(Image cursor, Point hotspot, String name)

создающим объект класса cursor и возвращающим ссылку на него. Перед этим следует создать изображение курсора cursor – объект класса image. Аргумент name задает имя курсора, можно написать просто null. Аргумент hotspot задает точку фокуса курсора. Эта точка должна быть в пределах изображения курсора, точнее, в пределах, показываемых методом

getBestCursorSize(int desiredWidth, int desiredHeight)

возвращающим ссылку на объект класса Dimension. Аргументы метода означают желаемый размер курсора. Если графическая система не допускает создание курсоров, возвращается (0, 0). Этот метод показывает приблизительно размер того курсора, который создаст графическая система, например, (32, 32). Изображение cursor будет подогнано под этот размер, при этом возможны искажения.

Третий метод – getMaximumCursorColors() – возвращает наибольшее количество цветов, например, 256, которое можно использовать в изображении курсора.

Класс Toolkit содержит некоторые методы, связывающие приложение Java со средствами платформы, на которой выполняется приложение. Поэтому нельзя создать экземпляр класса Toolkit конструктором, для его получения следует выполнить статический метод Toolkit.getDefaultToolkit().

Если приложение работает в окне window или его расширениях, напри­мер, Frame, то можно получить экземпляр Toolkit методом getToolkit() класса Window.

пример разработки курсора:

Toolkit tk = Toolkit. getDefaultToolkit ();

// Наибольшеечислоцветов

int colorMax = tk.getMaximumCursorColors();

// d – размеризображения

Dimension d = tk.getBestCursorSize(50, 50);

int w = d.width, h = d.height, k = 0;

Point p = new Point(0, 25); // Фокускурсора в верхнемлевомуглу

int [] pix = new int [w * h]; // Здесьбудутпикселыизображения

for (int i = 0; i < w; i++)

for (int j = 0; j < h; j++)

if (j < i) pix[k++] = 0xFFFF0000; // угол - красный

else pix[k++] = 0; // уголпрозрачный

// Создаетсяпрямоугольноеизображениеразмером (w, h),

// заполненноемассивомпикселовpix, с длинойстроки w

Image im=createImage(new MemoryImageSource(w,h,pix,0,w));

Cursor curs = tk.createCustomCursor(im, p, null);

setCursor(curs);

В этом примере создается курсор в виде красного прямоугольного треугольника с катетами размером 32 пиксела и устанавливается в каком-то компоненте someComp.

Событие ComponentEvent происходит при перемещении компонента, изменении его размера, удалении с экрана и появлении на экране.

Событие FocusEvent возникает при получении или потере фокуса.

Событие KeyEvent проявляется при каждом нажатии и отпускании клавиши, если компонент имеет фокус ввода.

Событие MouseEvent происходит при манипуляциях мыши на компоненте.

Класс Container

Каждый компонент перед выводом на экран помещается в контейнер – подкласс класса container Класс container – прямой подкласс класса component, и наследует все его методы. Кроме них основу класса составляют методы добавления компонентов в контейнер:

· add (Component comp) – компонент comp добавляется в конец контейнера;

· add (Component comp, int index) – компонент comp добавляется впозицию index в контейнере, если index == -i, то компонент добавляется в конец контейнера;

· add (Component comp, object constraints) – менеджеру размещения контейнера даются указания объектом constraints;

· add (String name, Component comp) –компонент получает имя name.

Два метода удаляют компоненты из контейнера:

· remove (Component comp) – удаляет компонент с именем comp;

· remove (int index) – удаляет компонент с индексом index в контейнере.

Один из компонентов в контейнере получает фокус ввода (input focus), на него надравляется ввод с клавиатуры. Фокус можно переносить с одного компонента на другой клавишами <Таb> и <Shift>+<Tab>. Компонент может запросить фокус методом

requestFocus ()

и передать фокус следующему компоненту методом

transferFocus().

Компонент может проверить, имеет ли он фокус, своим логическим методом hasFocus().

Для облегчения размещения компонентов в контейнере определяется менеджер размещения (layout manager) – объект, реализующий интерфейс LayoutManager или его подынтерфейс LayoutManager2. Каждый менеджер размещает компоненты в каком-то своем порядке: один менеджер расставляет компоненты в таблицу, другой норовит растащить компоненты по сторонам, третий просто располагает их один за другим, как слова в тексте. Менеджер определяет смысл слов "добавить в конец контейнера" и "добавить в позицию index".

В контейнере в любой момент времени может быть установлен только один менеджер размещения. В каждом контейнере есть свой менеджер по умолчанию, установка другого менеджера производится методом

setLayout(LayoutManager manager)

Кроме событий Класса Component: ComponentEvent, FocusEvent, KeyEvent, MouseEvent при добавлении и удалении компонентов в контейнере происходит событие ContainerEvent.

Компонент Label – это просто строка текста, оформленная как графический компонент для размещения в контейнере. Текст можно поменять только методом доступа setText(string text), но не вводом пользователя с клавиатуры или с помощью мыши.

Создается объект этого класса одним из трех конструкторов:

· Label () – пустой объект без текста;

· Label (string text) – объект с текстом text, который прижимается клевому краю компонента;

· Label (String text, int alignment) – объект с текстом text и определенным размещением в компоненте текста, задаваемого одной из трех констант: CENTER, LEFT, RIGHT.

Размещение можно изменить методом доступа setAlignment(int alignment).

Остальные методы, кроме методов, унаследованных от класса component, позволяют получить текст

getText()

и размещение

getAlignment().

В классе Label происходят события классов Component: ComponentEvent, FocusEvent, KeyEvent, MouseEvent.

Компонент Button – это кнопка стандартного для данной графической системы вида с надписью, умеющая реагировать на щелчок кнопки мыши – при нажатии она "вдавливается" в плоскость контейнера, при отпускании – становится "выпуклой".

Два конструктора Button() и Button (String label) создают кнопку без надписи и с надписью label соответственно.

Методы доступа

getLabel()

и

setLabel (String label)

позволяют получить и изменить надпись на кнопке.

Главная функция кнопки – реагировать на щелчки мыши, и прочие методы класса обрабатывают эти действия.

Кроме событий класса Component: ComponentEvent, FocusEvent, KeyEvent, MouseEvent, При нажатии на кнопку формируется событие ActionEvent.




Поделиться с друзьями:


Дата добавления: 2015-07-02; Просмотров: 361; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.026 сек.