استعمال الخطوط والالوان في البريمجات

by emad@deyaa.org

الاهداف

استعمال الخطوط في البريمج

اختيار قياس ونمط الخط

اختيار الخط

استعمال ثوابت الالوان 

عرض الالوان في البريمجات 

اعداد لون الخلفية 

استعمال قيم نظام الالوان 

انشاء تأثيرات نص خاصة باستعمال الالوان

العرض

اولا استعمال فئة الخط

مرحبا بكم معنا في هذا الدرس الذي يتناول استعمال الخطوط والالوان في بريمجات الجافا ابليت

بالنسبة للخط يهمنا فيه معرفة ثلاثة مواصفات اولها نوع الخط ومن أنواع الخطوط

Helvetica  , Courier , Dialog , Times Roman  

نمط الخط [ أسود . مائل . عادي ] وهكذا

حجم الخط بالنقاط

استاذي الكريم ماذا اصنع لأتمكن من عرض النص ؟

لكي تتمكن من عرض النص بأنواع خطوط وانماط وأحجام معينة يجب ان تكون الكائن فونت مائل بحجم 12 نقطة مع مراعاة اختيار الاسماء الوصفية للخط مثل خط أحادي التباعد

لوسمحت اريد توضيحا أكثر

يمكنك اختيار نمط الخط باستعمال متغير ثابت واحد أو أكثر على سبيل المثال

Font.Plain  يجعل الخط غير اسود وغير مائل

يجعل الخط أسود Font.Bold  

يجعل الخط مائل Font.Italic

 يجعل الخط اسود ومائل Font.Bold+Font.Italic 

import java.awt.*;

public class Fonts extends java.applet.Applet {

public void paint(Graphics screen) {
Font currentFont = new Font("TimesRoman", Font.PLAIN, 20);
screen.setFont(currentFont);
screen.drawString("أحبب حبيبك هونا ما ", 210, 50);
currentFont = new Font("TimesRoman", Font.PLAIN, 20);
screen.setFont(currentFont);
screen.drawString("فلربما صار عدوك يوما ما", 180, 80);
currentFont = new Font("TimesRoman", Font.PLAIN, 20);
screen.setFont(currentFont);
screen.drawString("وابغض بغيضك هونا ما ", 200, 110);
currentFont = new Font("TimesRoman", Font.PLAIN, 20);
screen.setFont(currentFont);
screen.drawString("فلربما صار حبيبك يوما ما ", 180, 140);
}
}

المثال السابق مثال سهل لاستعمال الخطوط في البريمج بعد ان تترجمه وتعرضه في صفحة انترنت يكون الناتج كالاتي

 
 

  والان الى الالوان

الطريقة السهلة هي استعمال واحد من المتغيرات الثابتة للفئة كلر وهي 13 لون

وهذه الثوابت هي 

Black , blue , cyan , darkGray , gray , green , Lightgray , magenta , orange , pink , red , white , yellow 

حيث يمكنك ضبط لون الخلفية لإطار البريمج باستعمال هذه الثوابت 

لو سمحت استاذي العزيز اريد مثالا على ذلك 

setBackground(Color.gray);

وماذا نفعل عندما نريد عرض نص لون معين أو رسم رسوم بألوان مختلفة 

في هذه الحالة نستعمل نهج يضبط اللون وتستطيع عمل هذا من النهج بينت باستعمال النهج سيت كلر 

كما في المثال 

public void paint(Graphics screen) {
super.paint(screen);
graphics2D screen2D = (Graphics2D) screen;
screen2D.setColor(Color.orang);
screen2D.drawString("الجافا لغة العصر ", 5 , 50);

استاذي الفاضل ماذا اصنع اذا اردت استعمال لون غير وارد في الثوابت السابقة يعني اذا اردت استعمال درجة معينة من درجات الاخضر ماذا افعل ؟ 

 

صديقي العزيز اذا اردت استعمال لون غير الالوان الثابتة الثلاثة عشر في هذه الحالة يجب تحديد القيم التالية للون 

R G B [ red  -- green - blue ]

كما في الصورة اعلاه وفي هذه الحالة نحدد اللون حسب كمية الأحمر والأخضر والأزرق الموجودة في اللون حيث تتراوح كل قيمة من القيم الثلاثة بين صفر ويعني هذا اتعدام اللون وبين مائتان وخمس وعشرون وتعني اعلى قيمة للون وهذا موجود في برنامج الرسم بينت شوب او فوتو شوب وكما في الصورة 

 

كما في الصورة اذا اردت اختيار اللون الفيروزي فان قيمته كما في الصورة 89 للأحمر 193 للأخضر 247 للأزرق  

وللبرتقالي الفاتح 230 للأحمر 220 للأخضر 0 للأزرق 

واستعمال القيم احمر اخضر ازرق تمكنك من الاختيار من بين اكثر من 16.5 مليون تركيبه والحمد لله الذي علم الانسان وانظر الى هذه المعلومة للتتأكد اننا في الكون لسنا سوى قطرة في محيط الكون كله من الذرة الى المجرة يسبح بحمد الله فسبح معه حتى تكون في انسجام مع الكون وقل ربي زدني علما 

وماذا عن النظام الثاني لاختيار الالوان الذي توفره الجافا 

تقصد نظام الالوان اتش اس بي 

H  S  B  [ Hue Saturation Brightness ] 

في هذا النظام نغير درجة سطوع اللون دون تغيير أي شيء أخر في اللون 

واليك هذا المثال 

import java.awt.*;

public class Marhaba extends java.applet.Applet {
String text = "No text has been specified";
float hue = (float) 0.5;
float saturation = (float) 0.8;
float brightness = (float) 0.0;
Font textFont = new Font("Dialog", Font.BOLD, 20);
int textX;

public void init() {
setBackground(Color.blue);
String paramName = getParameter("TEXT");
if (paramName != null)
text = paramName;
FontMetrics fm = getFontMetrics(textFont);
textX = size().width / 2 - fm.stringWidth(text) / 2;
}

public void paint(Graphics screen) {
Color textColor = Color.getHSBColor(hue, saturation, brightness);
screen.setColor(textColor);
screen.setFont(textFont);
screen.drawString(text, textX, 30);
pause(250000);
brightness += 0.05;
if (brightness > 1) {
brightness = (float) 0.0;
pause(250000);
}
repaint();
}

public void update(Graphics screen) {
paint(screen);
}

void pause(int duration) {
for (int pause = 0; pause < duration; pause++);
}

}

بعد ترجمة الملف انشأ صفحة لعرضه 

<html>
<head></head><body>
<applet code="Marhaba.class" height=60 width=400><param name="TEXT" value="مرحبا بكم مع الجافا "></applet>
</html>

 

صديقي العزيز الان اطلب منك الدعاء لأبو دعاء فقد وصلت الى مرحلة متقدمة في تصميم بريمجات متألقة تستعمل فيها الخطوط والالوان 

الى اللقاء في الدرس القادم حيث نلتقي مع انشاء الرسوم المتحركة والعمل مع الرسوم ثنائية الابعاد ان شاء المولى عز وجل 

 

www.deyaa.org