Программирование мобильных телефонов на Java


Программирование мобильных телефонов

  • Введение
  • Глава 1. Устройство мобильных телефонов
  • Глава 2. Платформа Java 2 Micro Edition
  • Глава 3. Средства разработки мобильных приложений
  • Глава 4. Телефонные эмуляторы
  • Глава 5. Механизм работы приложений Java 2 ME
  • Глава 6. Классы пользовательского интерфейса
  • Глава 7. Программирование графики
  • Глава 8. Техника создания игр
  • Глава 9. Мобильная мультимедиа-библиотека
  • Заключение
  • Приложение 1. Основы языка Java
  • Приложение 2. Справочник по Java 2 Micro Edition

     

    Программирование на Java

  • Введение
  • Глава 1. Встроенные типы данных, операции над ними
  • Глава 2. Объектно-ориентированное программирование в Java
  • Глава 3. Пакеты и интерфейсы
  • Глава 4. Классы-оболочки
  • Глава 5. Работа со строками
  • Глава 6. Классы-коллекции
  • Глава 7. Классы-утилиты
  • Глава 8. Принципы построения графического интерфейса
  • Глава 9. Графические примитивы
  • Глава 10. Основные компоненты
  • Глава 11. Размещение компонентов
  • Глава 12. Обработка событий
  • Глава 13. Создание меню
  • Глава 14. Апплеты
  • Глава 15. Изображения и звук
  • Глава 16. Обработка исключительных ситуаций
  • Глава 17. Подпроцессы
  • Глава 18. Потоки ввода/вывода
  • Глава 19. Сетевые средства Java
  • Приложение. Развитие Java

  • 

    3fb01dc2


     

     

    Компонент Canvas

    Компонент canvas — это пустой компонент. Класс canvas очень прост — в нем только конструктор по умолчанию Canvas о и пустая реализация метода paint(Graphics g).

    Чтобы создать свой "тяжелый" компонент, необходимо расширить класс canvas, дополнив его нужными полями и методами, и при необходимости переопределить метод paint ().

    Например, как вы заметили, на стандартной кнопке Button можно написать только одну текстовую строку. Нельзя написать несколько строк или отобразить на кнопке рисунок. Создадим свой "тяжелый" компонент — кнопку с рисунком.

    В листинге 10.7 кнопка с рисунком — класс FiowerButton. Рисунок задается методом drawFiower (), а рисуется методом paint (). Метод paint (), кроме того, чертит по краям кнопки внизу и справа отрезки прямых, изображающих тень, отбрасываемую "выпуклой" кнопкой. При нажатии кнопки мыши на компоненте такие же отрезки чертятся вверху и слева — кнопка "вдавилась". При этом рисунок сдвигается на два пиксела вправо вниз — он "вдавливается" в плоскость окна.

    Кроме этого, в классе FiowerButton задана реакция на нажатие и отпускание кнопки мыши. Это мы обсудим в главе 12, а пока скажем, что при каждом нажатии и отпускании кнопки меняется значение поля isDown и кнопка перечерчивается методом repaint (). Это достигается выполнением методов mousePressed() И mouseReleased().

    Для сравнения рядом помещена стандартная кнопка типа Button того же размера. Рис. 10.7 демонстрирует вид этих кнопок.

    Листинг 10.7. Кнопка с рисунком 

    import j ava.awt.*;

    import j ava.awt.event.*;

    class FiowerButton extends Canvas implements MouseListener{ 

    private boolean isDown=false; 

    public FiowerButton(){

    super();

    setBackground(Color.lightGray);

    addMouseListener(this); 

    }

    public void drawFlower(Graphics g, int x, int y, int w, int h){ 

    g.drawOvalfx + 2*w/5 - 6, y, w/5, w/5);

    g.drawLine(x + w/2 - 6, у + w/5, x + w/2 - 6, у + h - 4); 

    g.drawOvalfx + 3*w/10 -6, у + h/3 - 4, w/5, w/5) ; 

    g.drawOval(x + w/2 - б, у + h/3 - 4, w/5, w/5); } 

    public void paint(Graphics g){

    int w = getSizeO.width, h = getSize().height; 

    if (isDown){

    g.drawLine(0, 0, w - 1, 0) ; 

    g.drawLined, 1, w - I, I); 

    g.drawLine(0, 0, 0, h - 1); 

    g.drawUne (1, 1, 1, h - 1); 

    drawFlower(g, 8, 10, w, h); 

    }

    else

    {

    g.drawLine(0, h - 2, w - 2, h - 2); 

    g.drawLined, h - 1, w - I, h - I); 

    g.drawLinefw - 2, h - 2, w - 2, 0); 

    g.drawLinefw - 1, h - 1, w - 1, 1); 

    drawFlower (g, 6, 8, w, h) ; } }

    public void mousePressed(MouseEvent e){ 

    isDown=true; repaint(); }

    public void mouseReleased(MouseEvent e){ 

    isDown=false; repaint(); }

    public void mouseEntered(MouseEvent e){} 

    public void mouseExited(MouseEvent e) {} 

    public void mouseClicked(MouseEvent e){) 

    }

    class DrawButton extends Frame{ 

    DrawButton(String s) { 

    super (s) ; 

    setLayout(null);

    Button b = new Button("OK"); 

    b.setBounds(200, 50, 100, 60); add(b);

    FlowerButton d = new FlowerButton(); 

    d.setBounds(50, 50, 100, 60); add(d);

    setSize(400, 150); 

    setVisible(true);

    }

    public static void main(String[] args){

    Frame f= new DrawButton(" Кнопка с рисунком"); 

    f.addWindowListener(new WindowAdapter()(

    public void windowClosing(WindowEvent ev){

    System.exit(0);  

    }

    }); 

    }

     Рис. 10.7. Кнопка с рисунком

     

    -
    



    Copyright © vzlom-1.ru 2020-2021