Читаем Основы программирования на Java полностью

f1.skip(size/4);

System.out.println( "Still Available: " + f1.available());

System.out.println("Reading 1/16 into the end of array");

if (f1.read(b, b.length-size/16, size/16) != size/16) {

System.err.println("Something bad happened");

}

System.out.println("Still Available: " + f1.available());

f1.close();

}

}

11.6. Файловый поток FileOutputStream

У класса FileOutputStream — два таких же конструктора, что и у FileInputStream Однако создавать объекты этого класса можно независимо от того, существует файл или нет. При создании нового объекта класс FileOutputStream перед тем, как открыть файл для вывода, сначала создает его. В очередном нашем примере символы, введенные с клавиатуры, считываются из потока System.in - по одному символу за вызов до тех пор, пока не заполнится 12-байтовый буфер. После этого создаются три файла. В первый из них, filel.txt, записываются символы из буфера, но не все, а через один — нулевой, второй и так далее. Во второй, file2.txt, записывается весь ввод, попавший в буфер. И, наконец, в третий файл записывается половина буфера, расположенная в середине, а первая и последняя четверти буфера не выводятся.

import java.io.*;

class FileOutputStreamS {

public static byte getlnput()[] throws Exception {

byte buffer[] = new byte[12];

for (int i=0; i

buffer[i] = (byte) System.in.read();

}

return buffer;

}

public static void main(String args[]) throws Exception {

byte buf[] = getlnput();

OutputStream f() = new FileOutputStream("filel.txt");

OutputStream f1 = new FileOutputStream("file2.txt");

OutputStream f2 = new FileOutputStream("file3.txt");

for (int i=0; i < 12; i += 2) {

f0.write(buf[i]);

}

f0.close();

f1.write(buf);

f1.close();

f2.write(buf, 12/4,12/2);

f2.close();

}

}

<p>12. ПРОГРАММИРОВНИЕ ГРАФИЧЕСКИХ ПОЛЬЗОВАТЕЛЬСКИХ ИНТЕРФЕЙСОВ</p>

12.1. Компоненты

Component — это абстрактный класс, который инкапсулирует все атрибуты визуального интерфейса - обработка ввода с клавиатуры, управление фокусом, взаимодействие с мышью, уведомление о входе/выходе из окна, изменения размеров и положения окон, прорисовка своего собственного графического представления, сохранение текущего текстового шрифта, цветов фона и переднего плана (более 10 методов). Перейдем к некоторым конкретным подклассам класса Component.

12.2. Класс Container

Container — это абстрактный подкласс класса Component, определяющий дополнительные методы, которые дают возможность помещать в него другие компоненты, что дает возможность построения иерархической системы визуальных объектов. Container отвечает за расположение содержащихся в нем компонентов с помощью интерфейса LayoutManager.

12.3. Класс Canvas

Основная идея использования объектов Canvas в том, что они являются семантически свободными компонентами. Вы можете придать объекту Canvas любое поведение и любой желаемый внешний вид. Его имя подразумевает, что этот класс является пустым холстом, на котором вы можете «нарисовать» любой компонент — такой, каким вы его себе представляете.

Произведем от Canvas подкласс GrayCanvas, который будет просто закрашивать себя серым цветом определенной насыщенности. Наш апплет будет создавать несколько таких объектов, каждый со своей интенсивностью серого цвета.

import java.awt.*;

import java.applet. *;

class GrayCanvas extends Canvas {

Color gray;

public GrayCanvas(float g) {

gray = new Color(g, g, g);

}

public void paint(Graphics g) {

Dimension size = size();

g.setColor(gray);

g.fillRect(0,0, size.width, size.height);

g.setColor(Color.black);

g.drawRect(0, 0, size.width-1, size.height-1);

}

}

public class PanelDemo extends Applet {

static final int n = 4;

public void init() {

setLayout(null);

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных