ООП. Заголовочные файлы, указатели, перегрузка операций и т д. Кроссплатформенность языка
Скачать 60.07 Kb.
|
add add(<новый component>) Класс, расширяющий класс JPanel позволяет создать панель. Панель является компонентом, на котором можно осуществлять рисование, а также она может является контейнером для других компонент. Для создания текстового поля используются объекты класса JTextField JTextField field = new JTextField(); field. SetCollumns(15); // setCollumns – устанавливает ширину текстового поля String s=field.getText(); // getText()- позволяет получить содержимое текстового поля в виде строки field.setText(“Some string”); // setText - позволяет установить содержание текстового поля frame.add(field); Объекты класса JLabel можно использовать для создания меток на форме JLabel l1=new JLabel (“Метка»); Кнопка создается с помощью объекта класса JButton b1=new JButton (“Добавить”); Класс JTextArea – позволяет создавать многострочные текстовые поля. Здесь нужно устанавливать ширину и высоту текстового поля setCollumns(int x) // - установка ширины текстового поля setRows(int x)// - установка высоты или длины текстового поля setText – позволяет установить значение текста append(String s) – добавляет кусок текста к существующему тексту в TextArea Схема обработки событий При обработке событий, предусмотренных библиотекой AWT, программист полностью контролирует процесс передачи события от его источника к его обработчику. Источник события содержит методы, которые позволяют связывать его с обработчиком и оповещать всех зарегистрированных обработчиков события о наступлении данного события. Обработчиком события может быть назначен любой объект В Java все объекты события являются экземплярами класса EventObject или его подклассов. Вся информация о наступившем событии инкапсулируется в некотором объекте. Схему обработки событий можно представить следующими шагами: Создается класс-обработчик события, который реализует специальный интерфейс В источнике события регистрируются все возможные обработчики этого события При наступлении события источник формирует объект, описывающий это событие и рассылает этот объект всем зарегистрированным обработчикам На основании полученного объекта события обработчик принимает решение каким образом реагировать на это событие. Например, для обработки событий кнопки нужно реализовать класс, реализующий интерфейс ActionListener Для обработки событий окна нужно реализовать интерфейс WindowListener Для обработки взаимодействий с мышью нужно реализовать интерфес MouseListener Для кнопок клавиатуры – KeyListener Лекция 12.12.19 Для регистрации обработчика события у некоторого источника используется выражение следующего вида: <источник>.addСобытиеListener(<обработка>) Для добавления некого обработчика источнику события необходимо сначала создать класс-обработчик события, который реализует специальный интерфейс. Обычно в качестве обработчиков события используют внутренние классы, поскольку они облегчают доступ к элементам панели. В нашем примере создается панель, на которой расположены два текстовых поля, содержимое которых мы будем складывать по нажатию кнопки и результат записывать в элемент JLabel Создаем панель: Class MyPanel extends JPanel { JTextField f1,f2; JLabel l1; JButton b; MyPanel () { f1=new JTextField(); f1.setColumns(15); add(f1); f2=new JTextField(); f2.setColumns (15); add(f2); l1=new JLabel(); add(l1); b=new JButton(“Вычислить”); MyListener listener new MyListener (); b.addActionListener(listener); add(b); } class MyListener implements ActionListener // это обработчик { public void actionPerformed(ActionEvent e) { int p1=Integer.parseInt (f1.getText()); // делаем приведение типов для каждого из p int p2=Integer.parseInt (f2.getText()); int p3=p1+p2; p1.setText(String.valueOf(p3)); Кнопка может генерировать события типа ActionEvent В тот момент, когда кнопка нажимается, создается объект, который будет инкапсулировать все сведения об произошедшем событии. Далее этот объект будет отправлен всем зарегистрированным обработчикам, т.е объекту Listener, который выполнит некие действия, необходимые при нажатии этой кнопки. Помимо обработки нажатия на кнопку события ActionEvent могут генерироваться при нажатии на пункт «Меню», при двойном щелчке на пункте Списка, а также при нажатии Enter’a, когда курсор расположен в текстовом поле. Интерфейс MouseListener содержит заголовки методов, которые позволяют создавать классы-обработчики для события, исходящих от мыши. Мышь генерирует события типа MouseEvent, которые передаются параметром в методы интерфейса. public void mouseClicked (Mouse Event e) –этот метод реализует обработку щелчка мыши public void mousePressed (Mouse Event e) – этот метод реализует, когда кнопка мыши зажата. public void mouseReleased (Mouse Event e)- обработчик для событий, когда кнопка мыши отпущена public void mouseEntered (Mouse Event e) – когда курсор входит в какую-нибудь область public void mouseExited (Mouse Event e) - когда курсор вsходит из какой-нибудь области Для обработки событий, поступающих от мыши необходимо реализовать интерфейс MouseListenerт.е нужно создать класс, который реализует этот интерфейс, то есть реализует все эти методы, даже если они пустые. Для регистрации такого обработчика используется метод addMouseListener. Для обработки событий мыши минимально необходимо реализовать метод MouseClicked, а все остальные заголовки можно переписать в класс обработчика, оставив их тела пустыми. Для удобства программистов были созданы специальные классы-адаптеры, которые содержат пустую реализацию всех методов, соответствующего интерфейса. Тогда для создания класса-обработчика события можно создать класс, который является наследником класса адаптера и переопределить в нем только нужные методы. Для каждого интерфейса слушателя существует свой класс адаптер. Например, для интерфейса MouseListener существует класс MouseAdapter class MyListener extends MouseAdapter { public void mouseClicked(MouseEvent e ) { If (f1.getText().equals(“Admin”)) flag=true; else flag=false; } } Очень удобно для обработки событий использовать анонимные классы, тогда код становится более компактным и читаемым <источник>.addMouseListener(new MouseAdapter() { |