Программирование мобильных телефонов на 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


     

     

    Печать файла

    Печать текстового файла заключается в размещении его строк в графическом контексте методом drawstring (). При этом необходимо проследить за правильным размещением строк в области печати и разбиением файла на страницы.

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

    Листинг 18.9. Печать текстового файла 

    import java.awt.*; 

    import java.awt.print.*; 

    import java.io.* ;

    public class Print2File{

    public static void main(String[] args){ 

    if (args.length < 1){

    System.err.println("Usage: Print2File path"); 

    System, exit(0); 

    }

    PrinterJob pj = PrinterJob.getPrinterJob(); 

    PageFormat pf = pj.pageDialog(pj.defaultPage()); 

    pj.setPrintable(new FilePagePainter(args[0]), pf);

    if (pj.printDialog()){ 

    try{

    pj.print();

    }catch(PrinterException e){} 

    )

    System, exit(0); 

    }

    class FilePagePainter implements Printable{ 

    private BufferedReader br; 

    private String file; 

    private int page = -1; 

    private boolean eof; 

    private String[] line; 

    private int numLines;

    public FilePagePainter(String file){

    this.file = file;

    try{

    br = new BufferedReader(new FileReader(file));

    }catch(IOException e){ eof = true; } 

    public int print(Graphics g, PageFormat pf, int ind)

    throws PrinterException(

    g.setColor(Color.black);

    g.setFont(new Font("Serif", Font.PLAIN, 10));

    int h = (int)pf.getlmageableHeight();

    int x = (int)pf.getlmageableX() + 10;

    int у = (int)pf.getlmageableY() + 12;

    try{

    // Если система печати запросила эту страницу первый раз 

    if (ind != page){

    if (eof) return Printable.NO_SUCH_PAGE;

    page = ind;

    line = new String[h/12];           // Массив строк на странице

    numLines =0;                       // Число строк на странице

    // Читаем строки из файла и формируем массив строк 

    while (у + 48 < pf.getlmageableY() + h){ 

    line[numLines] = br.readLine(); 

    if (line[numLines] == null){ 

    eof = true; break; }

    numLines++; 

    У += 12;

    }

    }

    // Размещаем колонтитул 

    у = (int)pf.getImageableY() + 12; 

    g.drawstring("Файл: " + file + ", страница " +

    (ind + 1), x, у); 

    // Оставляем две пустые строки 

    у += 36;

    // Размещаем строки текста текущей страницы 

    for (int i = 0; i < numLines; i++){ 

    g.drawString(line[i], x, y) ; 

    у += 12; 

    }

    return Printable.PAGE_EXISTS; 

    }catch(lOException e){

    return Printable.NO_SUCH_PAGE; 

    }

     

    -
    



    Copyright © vzlom-1.ru 2020-2021