Методы абстрактного класса – потока байтовInputStream
Методы абстрактного класса – потока байтовInputStream
close() закрывает поток и освобождает ресурсы, ранее полученные для потока.
mark(intreadlimit) отмечает текущую позицию в потоке, которую можно будет использовать до тех пор, пока из потока не будет прочитано readlimit байтов.
markSupported() проверяет, допустимы ли методы mark и reset. Возвращает true/false.
read() читает очередной байт и возвращает его как правый байт int, или -1, если уже нет доступных байтов.
read(byte[] b) читает порцию байтов, заполняя массив b. Возвращает количество реально прочтенных байтов, если b.length==0, ничего не читает и возвращает 0, если нет доступных байтов, возвращает -1.
read(byte[] b, intoff, intlen) читает len байтов в массив b со смещением от начала массива off. Возвращает количество реально прочтенных байтов. Если len==0, ничего не читает и возвращает 0, если нет доступных байтов, возвращает -1.
reset() перемещается по потоку в обратном направлении до отметки
skip(long n) пытается пропустить во входном потоке n байтов без чтения.
Методы абстрактного класса – потока байтов OutputStream.
Все методы этого класса имеют тип void и создают исключение IOException в случае ошибки.
write(int b) пишет правый байт из int в поток. Левые байты int не используются.
write(byte b[]) записывает в выходной поток массив байтов b.
write(byte b[], intoff, intlen) записывает в поток len байтов из b, начиная с элемента b[off].
flush() завершает операцию вывода, сохраняя данные из внутреннего буфера.
close() закрывает выходной поток.
FileInputStream – поток для ввода байтов, связанный с
файлом
FileOutputStream – поток для вывода байтов, связанный
сфайлом
FileInputStream fi=null;
FileOutputStreamfo=null;
fi=new FileInputStream("f-out.byt");
fo=new FileOutputStream("f-out2.byt");
1. Потоки символов: свойства, связь потока с файлом, чтение, запись, закрытие:
Потоки символов определены в двух иерархиях классов. Наверху этой иерархии 2 абстрактных класса: Reader и Writer. Они обрабатывают потоки символов Unicode.Считывается не байт, а символ.
Класс Reader - абстрактный класс, который определяет модель поточного символьного ввода.
Методы:
Intread() – возвращает целочисленное представление следующего доступного символа из вызывающего входного потока. Если поток пуст( нету символов для чтения) возвращает -1.
Intread (charA[])- читает до А.length символов в массиве А и возвращает фактическое число символов, которые успешно прочитались. Когда встречается признак конца файла возвращает -1.
Класс Writer- абстрактный класс, который определяет модель поточного символьного вывода.
Методы:
Voidclose()- закрывает выходной поток
Voidwrite (intc)- записывает оин символ в выходной поток вызывающего обьекта
Voidwrite(charA) - записывает заполненный массив символов в вызывающий выходной поток
Voidwrite (Stringstr)-записывает строку в вызывающий выходной поток
Класс FileReader–создает Reader-обьект , который можно использовать для чтения содержимого файла. Обычно используемые конструкторы :
FileReader (StringfilePath)-выбрасывает исключение типа FileNotFoundException, filePath- полное имя файла
FileReader (FilefileObj)- выбрасывает исключение типа FileNotFoundException, fileObj – обьект класса File, который описывает файл.
В классе component собраны общие методы работы с любым компонентом графического интерфейса пользователя. Этот класс — центр библиотеки AWT. Класс Jcomponent - для Swing
Каждый компонент перед выводом на экран помещается в контейнер (container). Контейнер "знает", как разместить компоненты на экране. Разумеется, в языке Java контейнер — это объект класса Container или всякого его расширения. Прямой наследник этого класса — класс jcomponent — вершина иерархии многих классов библиотеки Swing.
Создав компонент — объект класса Component или его расширения, следует добавить его к предварительно созданному объекту класса container или его расширения одним из методов add ().
Класс Container сам является невидимым компонентом, он расширяет класс Component. Таким образом, в контейнер наряду с компонентами можно помещать контейнеры, в которых находятся какие-то другие компоненты, достигая тем самым большой гибкости расположения компонентов.
Вопрос 42. Jframe — в иерархии объектов графики.
Ответы к экзамену по программированию часть 5 (вопр. 57-69)
57. События мышки. Общая схема обработки событий мышки:
· События мышки возникают, когда нажимаются кнопки, или вращается колесико, или мышка перемещается.
· Задача: "сфокусировать" приложение на нужном компоненте
Схема обработки событий:
· Источник события
· Слушатель события
· Обработчик события
o Источник передает события зарегистрированным слушателям
o Слушатель организует обработку (самостоятельно или вызовом специальных методов-обработчиков)
58. Методы интерфейса MouseListener и их назначение:
Интерфейс listener для получения событий, связанных с мышкой:
void mouseClicked(MouseEvent e) - кнопка мыши была нажата (нажата и отпущена) на компоненте
void mouseEntered(MouseEvent e) - Вызывается, когда мышь входит в компонент
void mouseExited(MouseEvent e) - Вызывается, когда мышь выходит из компонента
void mousePressed(MouseEvent e) - кнопка мыши была нажата на компоненте
void mouseReleased(MouseEvent e)- кнопка мыши была отпущена на компоненте
59. Методы интерфейса MouseMotionListener:
Интерфейс для отслеживания перемещений и перетаскиваний мыши:
void mouseDragged(MouseEvent e)- кнопка мыши нажата и мышь перемещают
void mouseMoved(MouseEvent e)- курсор мыши был передвинут без нажатий на кнопки мыши
60. Методы класса MouseEvent. Получение координат события:
int getButton()- Возвращает номер нажатой кнопки
int getClickCount()- Возвращает кол-во щелчков мыши, связанных с данным событием
Point getLocationOnScreen()- Возвращает координаты (x,y) события
int getModifiersEx()- Возвращает расширенную маску модификатора для этого события
Point getPoint()- Возвращает координаты (x,y) позиции мыши, когда событие произошло
int getX()- Возвращает координату x позиции мыши, когда событие произошло
компонента
int getY()- Возвращает координату y позиции мыши, когда событие произошло
61. Управляющие элементы графического интерфейса – внешний вид и назначение:
Управляющие элементы представлены следующими классами: Button (кнопка), Checkbox (кнопка с независимой фиксацией), Choice (раскрывающийся список Windows), Label (строка), List (список выбора Windows) и Scrollbar (полоса прокрутки). Это достаточно простые классы, наследуемые от абстрактного класса Component напрямую.
Однако в составе java.awt имеются классы интерфейсных элементов, имеющие промежуточного предка. Хорошим примером тому является класс Panel для создания различных панелей. У него имеется промежуточный абстрактный класс-предок Container, служащий родоначальником многих классов-контейнеров, способных содержать в себе другие элементы интерфейса. От этого же класса наследуется класс окна Window, представляющий на экране простейшее окно без меню и рамки. У этого класса есть два часто используемых потомка: Dialog, название которого говорит само за себя, и Frame - стандартное окно Windows. Еще один промежуточный класс TextComponent порождает два полезнейших в работе класса - TextField (аналог строки ввода Windows) и многострочное окно текстового ввода TextArea. Особняком от всех элементов стоит класс Canvas. Его визуальное представление - пустой квадрат, на котором можно выполнять рисование и который может обрабатывать события нажатия кнопок мыши.
62. Кнопка. Состояния кнопки. События кнопки, их обработка и идентификация:
Компонент Button – кнопка стандартного для данной графической системы вида с надписью, умеющая реагировать на щелчок кнопки мыши – при нажатии она «вдавливается» в плоскость контейнера, при отпускании – становится «выпуклой».
1 – обычная кнопка, 2 – кнопка в фокусе (активный объект), 3 – кнопка нажата.
Если приложению требуется выполнять какие-то действия, связанные с нажатием кнопок, класс программы должен реализовывать интерфейс ActionListener и зарегистрировать слушатель события кнопки, вызывая метод класса javax.swing.AbstractButton– addActionListener().
· кнопки – элементы JButton
· Кнопка – текст на кнопке – команда (текст)
· Нажатие на кнопку - событие ActionEvent
· Слушатель события – ActionListener
· Обработчиксобытия – actionPerformed(ActionEvent e)
63. Структура программы, имеющей интерфейс с двумя кнопками:
private Button button1;
private Button button2; // задаемкнопкивклассе
this.add(button1);
this.add(button2); // добавляемвплоскостьконтента
if (event.target == button1) { // еслинажатакнопка 1
Graphics g = this.getGraphics();
Rectangle r = this.bounds();
this.setBackground(Color.black); // заливаемфончерным
g.setColor(this.getBackground());
return true;}
else // иначе
if (event.target == button2){ // еслинажата 2
Graphics g = this.getGraphics();
Rectangle r = this.bounds();
this.setBackground(Color.white); // заливкабелая
g.setColor(this.getBackground());
return true; }
else returnsuper.action(event, arg); }
64. Элементы интерфейса «Условие» («флажок») и его конструкторы:
JCheckBox – это название класса JavaSwing, который представляет компонент-флажок или чекбокс. Что есть флажок или чекбокс? Это компонент, который имеет два состояния включен и выключен. Причем одно состояние естественно исключает другое. Соответствующее состояние компонента JCheckBox показывается галочкой. Если JCheckBox находится во включенном состоянии – галочка отображается, если в выключенном – галочки нет.
Конструкторы:
JCheckBox NAME = newJCheckBox( метка/иконка/выбрано/ не выбрано);
(иконка — изображение формата jpeg, gif, png, представленное как массив байтов).
Методы абстрактного класса – потока байтовInputStream
close() закрывает поток и освобождает ресурсы, ранее полученные для потока.
mark(intreadlimit) отмечает текущую позицию в потоке, которую можно будет использовать до тех пор, пока из потока не будет прочитано readlimit байтов.
markSupported() проверяет, допустимы ли методы mark и reset. Возвращает true/false.
read() читает очередной байт и возвращает его как правый байт int, или -1, если уже нет доступных байтов.
read(byte[] b) читает порцию байтов, заполняя массив b. Возвращает количество реально прочтенных байтов, если b.length==0, ничего не читает и возвращает 0, если нет доступных байтов, возвращает -1.
read(byte[] b, intoff, intlen) читает len байтов в массив b со смещением от начала массива off. Возвращает количество реально прочтенных байтов. Если len==0, ничего не читает и возвращает 0, если нет доступных байтов, возвращает -1.
reset() перемещается по потоку в обратном направлении до отметки
skip(long n) пытается пропустить во входном потоке n байтов без чтения.