C, PHP, VB, .NET

Дневникът на Филип Петров


Архив за декември, 2015

* Бъдни Вечер и Коледа 2015

Публикувано на 25 декември 2015 в раздел Семейни.

Весели празници на всички. Отворихте ли подаръците? Прочети още…

.

 


* Рисуване на графики върху панел с NetBeans

Публикувано на 20 декември 2015 в раздел УКИ.

В този урок ще се запознаем с някои от възможностите за изчертаване на фигури с java.awt. Ще се запознаем и с групи от бутони и добавянето на radioButton.

Започнете с нов проект, на който дайте име MyPaint. В него добавете JFrame с име MyPaint. Използвайте BorderLayout и сложете два панела – buttonsPanel в South и drawingPanel в Center.

1

Дайте Properties на drawingPanel и му задайте бял фон – това ще е белия лист, върху който ще рисуваме после: Прочети още…

.

 


* Access: Задача за упражнение 2

Публикувано на 19 декември 2015 в раздел УКИТ.

Нужно е да се направи база от данни за споделяне на статии между голяма група от потребители. В нея за всички потребители се пази уникален номер и уникално име. Всеки потребител може да има три основни роли – обикновен потребител (може да чете информация), автор (може да споделя информация) и рецензент (преглежда статии и ги одобрява или отхвърля). Разбира се авторите и рецензентите сами по себе си са обикновени потребители. Освен това не е забранено на даден автор да бъде и рецензент на други статии.

За всяка статия се пази нейното заглавие и съдържание (голямо количество текстова информация), дата на публикуване и незадължителна заглавна картинка. Когато някой автор добави нова статия в системата тя стандартно ще отива в „опашка за рецензиране“ (moderation queue). Това означава, че трябва някой рецензент да я провери и редактира преди да бъде официално публикувана. Статии, които не успеят да преминат успешно рецензия просто ще се изтриват. За статиите, които са одобрени задължително се пази информация за това кой е бил рецензента, който ги е одобрил. Прочети още…

.

 


* Упражнение 13, 2015

Публикувано на 18 декември 2015 в раздел ПИК3 Java.

Задачата беше да се направи клиент-сървър приложение за обмен на файлове. Когато клиент се свърже, той първо си подава потребителското име. След това подава една от следните две команди:

  • send <име на файл>
  • get <име на файл>

При команда send клиента изпраща файла на сървъра и затваря връзката. Сървърът трябва да запише файла с име <username>-<име на файл>. При команда get сървъра намира файл с име <username>-<име на файл>, изпраща го на клиента и затваря връзката. Прочети още…

.

 


* Пример за чат сървър и клиент с GUI с NetBeans

Публикувано на 17 декември 2015 в раздел УКИ.

Направен е дотам, докъдето стигнахме в часа. Има още много неща за дооправяне (race conditions, блокиране, обработка на изключения), както и оптимизиране. Изтеглете файла от тук: Chat.zip

.

 


* Access: Заявки

Публикувано на 15 декември 2015 в раздел УКИТ.

Показваме различни видове заявки: Select, Crosstab Select, Append и Delete. Разглеждаме агрегатни функции (Totals) и групирания на данни.

Изтеглете файла >>> ОТ ТУК <<<

.

 


* Работа с файлове в проект с NetBeans

Публикувано на 14 декември 2015 в раздел УКИ.

В това упражнение ще направим връзка между графичната среда Swing и традиционните уроци за работа с файлове. Допълнително ще се запознаем с работа с ListBox. За зареждането на информация от файла ще използваме структура от данни HashMap, но това не е задължително – с малко повече усилия същото може да бъде постигнато с обикновен масив.

В учебната задача имаме даден текстови файл със следната структура: Прочети още…

.

 


* Работа с дата и час

Публикувано на 09 декември 2015 в раздел ПИК3 Java.

В общи линии още от своето създаване Java винаги е търпяла критики към своята библиотека за работа с дата и час. Стандартните класове java.util.Date и java.util.Calendar имат редица проблеми:

  • Сбъркан дизайн: например Date не е дата, а е всъщност timestamp, месеците започват от 0. Дори да свикнете с това, дните пък си започват от 1. И т.н.;
  • Много трудна работа с часови зони;
  • Не можете да имате стандартни неща като дати без години, часове без отчитане на секунди и т.н.;
  • Няма вградена синхронизация за работа в многонишкова среда.

През годините паралелно с JDK се е развивала една библиотека наречена Joda, която решава тези проблеми. В крайна сметка с Java 8 се въвежда пакета java.time, който е с работно име JSR 310 и е базиран на библиотеката Joda, но има известни разлики с нея. В тази статия ще разгледаме именно JSR 310, защото от тук нататък това ще е стандартната библиотека за работа с дата и час в Java.

Четирите най-основни класа за работа с java.time са: Прочети още…

.

 


* Упражнение 11, 2015

Публикувано на 05 декември 2015 в раздел ПИК3 Java.

В това упражнение доработваме програмата от миналото упражнение като я правим клиент-сървър приложение. Ще направим клиент, който ще се свързва със сървъра и ще му изпраща пациент (Patient). Сървърът ще излекува пациента по съответния ред и ще върне обратно на клиента Report. Сървърът ще е направен така, че да може да обслужва много клиенти, но не едновременно, а един по един.

По сървъра редакциите са основно върху main метода на класа на създаденото преди това приложение. Това, което трябва да направите, е: Прочети още…

.

 


* Сериализация на обекти

Публикувано на 05 декември 2015 в раздел ПИК3 Java.

Java ни предлага механизъм, наречен сериализация на обекти. При него даден обект се представя като бинарна поредица съдържаща описание на класа на обекта и неговите конкретни данни (член-променливи). Така получената бинарна поредица може да бъде изпращана чрез ObjectOutputStream – например да бъде записана във файл, да бъде изпратена по мрежата до друг компютър и т.н. Четенето на обекта се осъществява чрез прозцес наречен „десериализация“ – при него обекта се възстановява в паметта в оригиналния си вид. Извършва се чрез ObjectInputStream. Най-важното за процеса на сериализация-десериализация е, че те са платформено независими, т.е. няма проблем да е сериализиран на един компютър и да бъде десериализиран на друг, който е със съвсем различни характеристики (дори и различна Java виртуална машина). Прочети още…

.