Язык и архитектура Java



         

Сетевые средства Java

Для посылки дейтаграмм отправитель и получатель создают сокеты дейта-граммного типа. В Java их представляет класс DatagramSocket. В классе три конструктора:
* DatagramSocket ()
— создаваемый сокет присоединяется к любому свободному порту на локальной машине;
* DatagramSocket (int port)
— создаваемый сокет присоединяется к порту port на локальной машине;
* DatagramSocket(int port, InetAddress addr) — создаваемый СОКСТ присоединяется к порту port; аргумент addr — один из адресов локальной машины.
Класс содержит массу методов доступа к параметрам сокета и, кроме того, методы отправки и приема дейтаграмм:
* send(DatagramPacket pack)
— отправляет дейтаграмму, упакованную в пакет pack;
* receive (DatagramPacket pack)
— дожидается получения дейтаграммы и заносит ее в пакет pack.

Работа в WWW
Среди программного обеспечения Internet большое распространение получила информационная система WWW (World Wide Web), основанная на прикладном протоколе HTTP (Hypertext Transfer Protocol). В ней используется расширенная адресация, называемая URL (Uniform Resource Locator)

Получить файл из Internet методом openStream().
Получение Web-страницы
Получение Web-страницы - 2
Посылка строки по адресу URL
Работа по протоколу TCP
Работа по протоколу TCP - 2
Упрощенный HTTP-клиент
Упрощенный HTTP-сервер
Работа по протоколу UDP
Посылка дейтаграмм по протоколу UDP

Переход к Swing
Поменяйте Frame на JFrame, Applet на JApplet, Component нa JComponent, Panel на JPanei. He расширяйте свои классы от класса canvas, используйте jpanei или другие контейнеры Swing. Замените компоненты AWT на близкие к ним компоненты Swing. Чаще всего надо просто приписать букву j: JButton, JcheckBox, JDialog, jList, JMenu и т. д. Закомментируйте временно строку import java.awt.*; и попробуйте откомпилировать программу. Компилятор покажет, какие компоненты требуют замены.

Архиватор jar
Создание архива
Правила употребления утилиты jar
Работа с утилитой jar
Файл описания MANIFEST.MF
Файл INDEX.LIST
Создание файла поиска
Компоненты JavaBeans
Окно JBuilder 4
Связь с базами данных через JDBC

JFC: Почему именно так?
Почему нужно добавлять компоненты приложения в контейнер content окна приложения JFrame? Почему нельзя добавлять их непосредственно в окно, как в библиотеке AWT? Почему? - Потому, что так нужно.

Преобразование XML в HTML на сервере
Нужно, чтобы преобразование XML документа с использованием XSL происходило на сервере и чтобы клиент получал HTML документ вместо комбинации XML документа и описания стилей в формате XSL. Как лучше подойти к решению этой задачи

Можно создать многострочную кнопку!
Предположим, я хочу создать кнопку с меткой, как показано ниже: "Ваше Имя" "Имя" должно быть во второй строке. Я пытался написать: new JButton("Ваше \\n Имя"). К сожалению, у меня ничего не получилось. У вас есть какие-нибудь советы

Можно создать многострочную кнопку!
Swing могут отображать HTML!

Массивы массивов
В Java все объекты обрабатываются с помощью ссылок. Объект может иметь несколько ссылок и ссылка может указывать на разные объекты в разные моменты времени. В этом смысле ссылки напоминают указатели C/C++ (правда, они не поддерживают операции с указателями, которые заменены в Java семантикой массивов).

Массивы массивов
Массивы массивов - 2

Firewall tunneling
Как мне соединиться с моим Java сервером через HTTP когда клиент находится за proxy/firewall? Я пробовал такое с апплетом, но он выдает в числе прочих исключение "host unreachable".

Семафоры
Единственные механизмы синхронизации, встроенные в Java-- это мониторы (monitors) и наборы задержек (wait sets), о которых большинство программистов даже не слышало, так как они скрыты в synchronized, wait() и notify(). К счастью, Java позволяет вам реализовать все знакомые схемы синхронизации на основе мониторов и наборов задержек.

Семафоры
Семафоры - 2

Небылицы?
Я видел веб-сайт, на котором курсор мыши превратился в рыбу с 5-ю слоями. Это вдохновило меня на то, чтобы превратить курсор на моей домашней страничке в музыкальную ноту с использованием 3-х слоев

Help tips в Swing
В компьютерном мире достаточно распространены приложения, показывающие краткую справку (help tip) в строке статуса, когда пользователь выбирает один из элементов меню. Я был удивлен тем, что набор компонентов меню в Swing не поддерживает такую возможность. Есть ли способ создать такую функциональность, не создавая подкласс одного из огромных классов Swing

Help tips в Swing
Help tips в Swing - 2

Использование нитей в Java
Только пользователь может решить, какой пакет поддержки нитей будет использоватся при запуске Java программы. Более того, когда программа запущена, нельзя переключится между green threads и native threads.

Минимизирование окна
Существует ли надежный способ для задания минимального размера окна? Я хочу, чтобы мои пользователи могли увеличить окно приложения, но при этом не могли сделать его меньше определенного минимального размера. Я просмотрел документацию API для иерархии JFrame и не нашел ничего подходящего.

Конструктор апплета
Для того, чтобы написать апплет, вы должны сначала создать подкласс класса Applet. Класс Applet точно такой-же, как и любой другой; следовательно, конструктор апплета -- это просто конструктор подкласса класса Applet.

Как заменить кофейную чашку
Для того чтобы заменить значок для окна -- как для апплета, так и для приложения -- вы должны сначала создать объект Image. Для этого существует несколько путей, но здесь мы воспользуемся объектом ImageIcon, так как его конструктор просто берет имя файла. ImageIcon image = new ImageIcon( "C:-b/images/your_image.gif");

Горячие клавиши
Пример ниже должен ответить на ваши вопросы о горячих клавишах в Java. Код показывает как установить быстрый доступ для меню, элемента меню, чек-бокса и кнопки. Вы можете выбрать горячую клавишу нажав Alt и код быстрого доступа

Статические классы
ля того, чтобы понять использование ключевого слова static в заголовке класса мы должны разобраться с заголовками классов вообще. Вы можете объявить два типа классов: обычные классы (верхнего уровня) и внутренние.

Статические классы
Статические классы - 2

Динамическая память; классы Vector и StringBuffer
Требование добавлять компоненты в контейнер contentPane призывает придерживаться описанной структуры. Попытка поступить иначе будет противоречить принципам, заложенным разработчиками библиотека Swing.

Язык и архитектура Java
На сегодняшний день создание программного обеспечения представляет собой чрезвычайно тяжелое занятие. Трудности связаны с разнообразием архитектур машин, операционных систем, графических оболочек и т.д.. Кроме того, ваши приложения должны работать в распределенных системах. Стремительный рост технологий, связанных с Интернетом, WWW и "электронной коммерцией", дополнительно усложняют эту задачу.

Основы проекта Java. Немного истории
Свойства Java, краткий обзор
Свойства Java, краткий обзор - 2
Базовая система Java
Результат -- новый подход к вычислениям
Основные свойства языка Java
Основные свойства языка Java - 2
Свойства, присутствующие в С и С++
Свойства, присутствующие в С и С++ - 2
Итоги

Доступ к базам данных из Java программ и проблемы русификации
Разумеется, что организовать доступ к базам данных из современного языка программирования в наше время не представляет никакой сложности. Более того, и сами языки программирования более всего оцениваются разработчиками по типу и возможностям заложенных в них средств доступа к базам данных, удобству и полноте интерфейсов. В этом смысле Java не представляет исключения. Уже в версии JDK1.1 появился пакет классов java.sql, обеспечивающий больщинство функций, известных к тому времени разработчикам ODBC-приложений.

Схема взаимодействия интерфейсов.
Схема взаимодействия интерфейсов. - 2
Схема взаимодействия интерфейсов. - 3
Схема взаимодействия интерфейсов. - 4
Схема взаимодействия интерфейсов. - 5
RMI-приложения
Как работает RMI
Разработка удаленного объектного кода
Разработка серверного кода
Установка службы безопасности

Немного Java - и страница ожила
Разновидностью приложений для WWW являются так называемые аплеты, они довольно часто применяются при оформлении Web-страниц. Аплеты оживляют страницы, добавляя в них анимацию или удобный интерфейс пользователя. Это намного улучшает внешний вид страниц и, как следствие, привлекает внимание посетителей сервера.

Создание потоков
Интерфейс Runnable
Создание потоков как объектов класса Thread
Управление потоками
Запуск потока
Остановка потока
Временная остановка и возобновление работы
Ожидание завершения потока
Установка приоритетов потоков
Некоторые методы класса Thread

Методы и функции JavaScript
Метод abs
Метод acos
Метод alert
Метод anchor
Метод asin
Метод atan
Метод back
Метод big
Метод blink
Метод blur

Непрофессиональное введение в JAVASCRIPT
Много людей полагают, что JavaScript есть Java из-за схожих имен. Но это не так. Я думаю, что зайду далеко в перёд, объясняя Вам все различия - поэтому просто запомините, что JavaScript это не Java

Запуск JavaScript
Вложение JavaScript в HTML-страницу
Броузеры, не поддерживающие JavaScript
События
Функции
Функции - 2

Фреймы и JavaScript
Сверху иерархии - окно броузера. Это окно дробится на два фрейма. Окно - родитель в этой иерархии, а два фрейма - потомки. Мы дали двум фреймам уникальные имена frame1 and frame2. С помощью этих имен мы можем обмениваться информацией между двумя фреймами.

Фреймы и JavaScript
Фреймы и JavaScript - 2
Панель навигации
Панель навигации - 2

Закрытие окон
Вы можете закрывать окна через JavaScript. Для этого Вам необходим метод close(). Давайте откроем новое окно как показано ранее.

Создание оперативных документов
Создание оперативных документов - 2
Создание оперативных VRML-сцен
Создание оперативных VRML-сцен - 2

Таймауты
С помощью таймаутов (или таймеров) Вы можете позволять компьютеру выполнять любой код по прошествии некоторого периода времени. Я сделал кнопку - если Вы нажмёте эту кнопку, через 3 секунды появится окно

Прокрутчик
Прокрутчик - 2

Math-объект
Если Вы должны производить математические вычисления, Вы найдете некоторые методы в Math-объекте, который далее мог бы Вам помочь. Имеется например метода синуса sin(). Вы найдете полную справку в документации Netscape.

Проверка на некоторые символы
Иногда Вы хотите ограничивать форму ввода некоторыми символами или числами. Подумайте о номере телефона - ввод должен содержать только цифры (мы предполагаем, что номер телефона не содержит никакие символы). Мы могли бы проверить, является ли ввод числом. Но большинство людей использует различные символы в их номере телефона - например: 01234-56789, 01234/56789 или 01234 56789 (с пробелом между ними). Пользователь не должен быть вынужденным ввести номер телефона без этих символов.

Отсылка формы ввода
Концентрация на некотором элементе формы

Загрузка новых изображений
Хотя полезно знать, как получить размер изображения на web-странице, но не это является целью нашего урока. Мы хотим изменять изображения на web-странице. Для этой цели мы нуждаемся в src свойстве. Итак в теге img свойство src, представляет адрес отображаемого изображения. Теперь, с помощью JavaScript 1.1 Вы можете присваивать новые адреса уже загруженному изображению на web-странице.

Предварительная загрузка изображений
Изменение изображений по событиям
Изменение изображений по событиям - 2
Изменение изображений по событиям - 3

Создание слоёв
Тег layer используется для слоев, которые могут быть установлены в позицию явным образом. Если Вы не определяете позицию (со свойствами left и top) слой будет помещён в верхний левый угол окна. Тег ilayer создает слой, позиция которого зависит от потока документа

Слои и JavaScript
Перемещение слоёв

Вложенные слои
Мы уже видели, что слой может содержать несколько различных объектов и даже другие слои. Вы задаться вопросом - какое это имеет применение. Существует несколько причин для использования вложенных слоев. Мы рассмотрим несколько примеров, которые показывают использование вложенных слоев.

Вложенные слои
Вложенные слои - 2

Объект Event
В JavaScript1.2. был добавлен новый объект Event. Он содержит свойства, которые описывают событие. Каждый раз, когда происходит событие, объект Event передается в обработчик события. Если Вы используя Netscape Navigator 4.x, щелкните где-нибудь на следующем изображении, появится всплывающее окно, показывающее координаты события мыши

Фиксация События
Фиксация События - 2

События провоцируемые мышью в JavaScript 1.2
Какие события мыши мы должны использовать? Мы не имеем MouseDrag но мы можем достигать этого же самого через события MouseDown, MouseMove и MouseUp. JavaScript 1.2 использует новую модель событий. Без этой модели событий мы не могли бы решить нашу задачу. Я говорил относительно новой модели события в последнем уроке. Но давайте еще раз посмотрим на важные части.

MouseDown, MouseMove и MouseUp
MouseDown, MouseMove и MouseUp - 2
Отображение перемещяющихся объектов
Отображение перемещяющихся объектов - 2
Отпускание объектов
Усовершенствования

Семь уроков по PostScript
Язык PostScript был разработан Джоном Уорноком (John Warnock) в фирме Adobe Systems в 1982 г. История создания языка описана в предисловии одного из его авторов к "Справочному руководству по языку PostScript". PostScript создавался в качестве простого стандартного языка для описания вида текста, чертежей и простых изображений на печатаемой странице, что наложило определенный отпечаток на используемые в PostScript конструкции. Язык содержит около 250 операторов, что позволяет одни и те же действия запрограммировать самыми разными способами.

Стек и арифметические операции
Арифметические операторы
Арифметические операторы - 2
Начала графики
Начала графики - 2
Начала графики - 3
Начала графики - 4
Процедуры и переменные
Определение переменных и процедур
Определение переменных и процедур - 2

Кратко о HTML, JavaScript и WWW
Волна бурного развития технологий World Wide Web не обошла стороной и средства управления сценариями просмотра гипертекстовых баз данных. Сегодня авторы домашних страниц Web получили в свое распоряжение новые языки JavaScript и VBScript. Темой данной статьи станет краткое рассмотрение некоторых возможностей HTML и JavaScript, используемых для программирования сценариев просмотра страниц Web.

Фреймы
Создание многооконного интерфейса
Использование HTML для полей HTTP
Программирование сценариев JavaScript
Идущие часы и бегущая строка
Идущие часы и бегущая строка - 2
Массивы
Графика
Графика - 2
Стеки гипертекстовых ссылок

Инструкция - Адаптер на 2 сим карты

Адаптер выполнен по стандартным габаритам Sim карты, поэтому чтобы поместить в адаптер две Sim карты, из каждой Sim карты необходимо вырезать чип. Это можно сделать вручную или с помощью кусачек.
Если вы пользуетесь MultiSim картой и хотите объединить ее с Sim картой не сканируемого оператора, то адаптер - лучшее решение.
Необходимо вырезать чип из обычной Sim карты, а MultiSim карта режется несколько иным способом, так как в ней контакты больше чем в операторской Sim карте, и по другому организовано подключение проводников от схемы к контактным поверхностям.
Затем нужно вставить обрезанные карты в специальные пазы адаптера, для этого необходимо сдвинуть защитную металлическую шторку-крышку и установить карты внутри. При обрезке один из уголков карты отрезается - он поможет правильному расположению, кроме того латунная поверхность карты должна соприкасаться с контактами адаптера. После этого нужно задвинуть металлическую шторку-крышку и вставить адаптер в телефон на место Sim карты.
Адаптер несколько толще стандартной Sim карты, поэтому аккуратно помещаем его в разъем телефона. Если с работой адаптера возникли какие-то проблемы, то вероятнее всего, что дело в плохом прижиме к контактам телефона. В этом случае рекомендуется на адаптер под аккумулятор положить прокладку.

Универсальный адаптер "х3" на 2 Sim карты
Универсальный адаптер на две Sim карты имеет габариты обычной Sim карты и подходит для всех моделей телефонов стандарта GSM и позволяет иметь в одном телефоне две Sim карты любых операторов, в том числе и те, которые не сканируются и переключаться между ними через выключение/включение телефона.

Универсальный адаптер "noname"
Универсальный адаптер "x3"
Универсальный адаптер "х3"
Использование MultiSim карты и Адаптера
Вырезка Sim карт под Адаптер на 2 Sim карты
Вырезка Sim карт под Адаптер на 2 Sim карты - 2

Параллельный адаптер порта LPT на ПЛИС Altera
Параллельный адаптер изначально проектировался только в учебных целях. Я хотел «пощупать» что же такое ПЛИС. Однако получилось вполне работоспособное устройство, которое может быть использована в качестве отладочной платы или может войти в состав более сложных устройств.

Параллельный адаптер LPT на ПЛИС Altera
Параллельный адаптер LPT на ПЛИС Altera - 2
Параллельный адаптер LPT на ПЛИС Altera - 3
Параллельный адаптер LPT на ПЛИС Altera - 4

Адаптер 2313
Адаптер предназначен для программирования ПЛИС ALTERA семейства MAX7000: EPM7032SLC44-10, EPM7064SLC44-10, с помощью кабеля

Адаптер MAX7000
Адаптер 2313

Адаптер K-Line
Этот вариант адаптера k-line отличается от предыдущего тем, что может быть установлен в автомобиле и позволяет подключать к нему не только персональный компьютер или ноутбук (для подключения используется стандартный линковочный кабель или переходник DB9F-DB9F, с распайкой один-в-один, изменив положение джамперов на плате адаптера), но и Palm.

Адаптер K-Line (вариант 2)
Адаптер K-Line

Адаптер COM-порта
Адаптер предназначен для сопряжения различных электронных устройств с последовательным портом персонального компьютера.

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

Регулятор громкости и прочего на TEA6320 и PIC16F84

Почти каждый радиолюбитель собирал самодельный усилитель. Регулятор громкости как правило просто резистор, в лучшем случае с отводом для тонкомпенсации. Но хочется, чтобы усилитель хотя бы по своей начинке не отставал от Научно-Технического прогресса.
Регулировки их разнообразие и удобство вот, что главное. Решил это дело возложить на цифровую технику, чтобы кнопками оперировать, с перспективой применения дистанционного управления.
Первым делом собрал схему цифрового регулятора на 155 серии (6шт.) и две КР572ПА1, две 544УД1 плата 50x100 (только регулировка громкости). Оказалось не то, три питания +5в, +15в, -15в потребляемый ток великоват и все греется. Но работало все исправно.
Следующий шаг – попытка скрестить малость переделаный цифровой регулятор на 155 серии и TDA1524 (древность еще та), но TDA1524 сгорела и пришлось ее заменить на К174УН10 и К174УН12. Поодиночке УН10 и УН12 работали нормально, но в паре шипели как две змеи, шум частично устранил подбором наименее шумных экземпляров. Это регулятор меня еще больше разочаровал, четыре питания (+5в, +9в, +15в, -15в) потребляемый ток великоват и все очень сильно греется. Здесь было155 серии (24шт.) и 4шт. КР572ПА1, 4шт. 544УД1 этажерка из 5 плат 50x100 (регулировка громкости, баланса, тембра НЧ и ВЧ, светодиодная индикация регулировок).

Регулятор громкости и прочего на TEA6320 и PIC16F84
Следующий шаг – попытка скрестить малость переделаный цифровой регулятор на 155 серии и TDA1524 (древность еще та), но TDA1524 сгорела и пришлось ее заменить на К174УН10 и К174УН12. Поодиночке УН10 и УН12 работали нормально, но в паре шипели как две змеи, шум частично устранил подбором наименее шумных экземпляров. Это регулятор меня еще больше разочаровал, четыре питания (+5в, +9в, +15в, -15в) потребляемый ток великоват и все очень сильно греется. Здесь было155 серии (24шт.) и 4шт. КР572ПА1, 4шт. 544УД1 этажерка из 5 плат 50x100 (регулировка громкости, баланса, тембра НЧ и ВЧ, светодиодная индикация регулировок).

Регулятор громкости TEA6320 и PIC16F84
Регулятор громкости на TEA6320 и PIC16F84 - 2
Регулятор громкости на TEA6320 и PIC16F84 - 3
Регулятор громкости на TEA6320 и PIC16F84 - 4

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

Электронный регулятор с плавным пуском
Электронный регулятор с плавным пуском - 2
Электронный регулятор с плавным пуском - 3
Электронный регулятор с плавным пуском - 4

Импульсный стабилизирующий регулятор тока
Большой популярностью пользуются тиристорные регуляторы напряжения, позволяющие регулировать яркость свечения настольных ламп и т.п. Множество подобных схем было опубликовано в литературе, но мне не встречались варианты со стабилизацией напряжения на нагрузке или тока через неё. Сеть у нас "грязная", и мерцание настольной лампы действует на нервы. Это подвигло меня на разработку стабилизирующего регулятора яркости её свечения.

Простой регулятор мощности
Часто в радиолюбительской практике требуется достаточно мощный регулятор, для управления различными электроприборами. Например многие используют стрительный фен, для монтажа\демонтажа компонентов и есть опасность перегрева копонента. Предлагаемая ниже схема позволит снизить мощность фена. Схема достаточно проста и доступна даже начинающему радиолюбителю.

Регулятор мощности на КР1182ПМ1
Регулятор мощности на микросхеме КР1182ПМ1 - еще одно решение задачи регулирования мощности высоковольтных мощных нагрузок. Устройство можно применять для плавного включения и выключения электрических ламп накаливания и изменения яркости свечения, для управления более мощными полупроводниковыми переключающими приборами, для регулирования частоты вращения электрических двигателей.

Электронный регулятор громкости
Для замены довольно посредственного по шумам и искажениям электронного регулятора громкости К174УН12 (A273D) предлагается применять более удачную ИМС KA2250. Типовая схема ее включения обеспечивает синхронную регулировку громкости двух каналов двумя кнопками SB1 ("Тише") и SB2 ("Громче"). К достоинствам КА2250, кроме доступной цены, относится и невысокое напряжение питания (5 В), позволяющее применять ее в переносной аппаратуре

Сенсорный регулятор на 145АП2
Сенсорный регулятор собран на отечественной БИС 145АП2, и в отличии от сенсорного регулятора на AT2313 , управляется одним сенсором не обеспечивая плавного включения/выключения. Схема содержит минимум деталей (1,2), и при правильной сборке начинает работать сразу, не требуя дополнительных настроек. При кратковременном прикосновении к сенсору происходит включение(выключение) лампы.

MIDI-клавиатура на PIC16F84
Предлагаемая MIDI-клавиатура предназначена для применения совместно с ПК или с синтезаторами в бесклавиатурном исполнении. Клавиатура обслуживает 16 MIDI-каналов. Встроенный регулятор может использоваться либо для управления громкостью, либо для манипулирования одним из 31 контроллеров. Клавиатура рассчитана на подключение 48 клавиш.

MIDI-клавиатура на PIC16F84.
MIDI-клавиатура на PIC16F84. - 2

LCD дисплей и матричная клавиатура 4х4 через LPT-порт
Если у вас завалялся системник с какой нибудь старой "мамкой" типа 286 или 386, и вы решили его приспособить, например, для поддержания температуры в аквариуме и своевременной раздаче корма рыбкам или управлением домашнего инкубатора по выведению цыплят, то использование со стандартными клавиатурой и дисплеем будет выглядеть громозко, особенно в условиях ограниченного пространства, а без таковых у вас не будет возможности контролировать процесс и вносить в него коррективы.
Интернет через Ethernet
Разработка приложений для Internet
Настройка Kerio WinRoute Firewall
Intranet Ware для Малого Бизнеса
Непрерывность бизнеса в нештатных ситуациях
Автоматизация работы с текстом
Lotus. Администрирование в вопросах и ответах
TCP-IP протоколы взаимодействия
TCP-IP крупным планом
Математическое моделирование течений вязкой жидкости вблизи твердых поверхностей
Система автоматизации библиотек ИРБИС
Сетевое железо
Локальная сеть для офиса
Компьютер (железо) - статьи
Курс лекций по вычислительной технике. Компьютерная техника
Исаков Дмитрий - Мурзик
Информатика и технология программирования
IT консалтинг - статьи
Корпоративный сайт. Эффективный инструмент бизнеса
Безопасность систем с открытым кодом