تعلم JavaFx ..مقال30_ التعامل مع النصوص JavaFX - Text

إرسال مساهمة في موضوع

اذهب الى الأسفل

تعلم JavaFx ..مقال30_ التعامل مع النصوص JavaFX - Text

مُساهمة من طرف زهراء في الثلاثاء أكتوبر 23, 2018 7:33 am

أهلا بكم 

توفر المكتبة JavaFX فئة باسم javafx.scene.text.Text لانشاء نص بدون الحاجة الى Node ليتم وضعه عليه كما الحال فى العنصر الرسومي label التى توفرة الحزمة javafx.scene.control 

تمامًا مثل الأشكال الرسومية المختلفة ، يمكنك أيضًا إنشاء نص text في JavaFX. حيث يتم تمثيل  النص بواسطة الفئة المسماة Text ، والذي ينتمي إلى الحزمة javafx.scene.text.

تحتوي هذه الفئة على العديد من الخصائص لإنشاء نص في JavaFX وتعديل مظهره. يرث هذه الفئة أيضًا فئة الاشكال الرسومية التي تنتمي إلى الحزمة javafx.scene.shape....لذلك ، بالإضافة إلى خصائص النص مثل الخط ، المحاذاة ، تباعد الأسطر ، النص ، إلخ. كما يرث خصائص الشكل الأساسية مثل strokeFill ، stroke ، strokeWidth ، strokeType ، إلخ.

كيفية إنشاء عقدة النص Creating a Text Node

1_إستيراد الحزمة التى تتضمن النص على النحو التالى :
الكود:
import javafx.scene.text.Text;  

2_إنشاء مثيل جديد من الكلاس Text لإنشاء عقدة النص.
الكود:
Text text = new Text();  

3_استخدام الدالة setText لتمرير نص اليها والذي يمثل النص المطلوب إنشاؤه.
الكود:
String text = "Hello how are you"
Text.setText(text);

4_تحديد موضع النص بالنسبة للنافذة باستخدام الدالتين  setX () و setY () كما هو موضح في كتلة التعليمات البرمجية التالية -
الكود:
text.setX(50);
text.setY(50);

و الشفرة الكاملة لانشاء نص من هذا النوع على النحو التالى :

الكود:
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.text.Text;
        
public class TextExample extends Application {
   @Override
   public void start(Stage stage) {      
      //Creating a Text object
      Text text = new Text();      
      
      //Setting the text to be added.
      text.setText("Hello how are you");
      
      //setting the position of the text
      text.setX(50);
      text.setY(50);
        
      //Creating a Group object  
      Group root = new Group(text);  
              
      //Creating a scene object
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage
      stage.setTitle("Sample Application");
        
      //Adding scene to the stage
      stage.setScene(scene);
        
      //Displaying the contents of the stage
      stage.show();
   }      
   public static void main(String args[]){
      launch(args);
   }
}

و النتيجة على النحو التالى :




ضبط و تنسيق خط النص

بشكل افتراضي ، يكون النص الذي تم إنشاؤه بواسطة فئة النص من الخط  والحجم واللون الأسود كما هو موضح فى المثال اعلاه...يمكنك تغيير حجم الخط ولون النص باستخدام طريقة setFont (). تقبل هذه الطريقة كائن من فئة الخط.

الفئة او الكلاس Font هي احد الفئات الفرعية التى توجد بالحزمة javafx.scene.text و تستخدم لتنسيق و ضبط الخط ولها الثوابت التالية :


  • الثابت family : ويحدد نوع الخط  الذي نريد تطبيقه على النص ...نوع البيانات التى يقبلها "سلسلة نصية " string  ويجب أن تكون عائلة خطوط مناسبة موجودة في النظام.
  • الثابت weight :  هذه الخاصية تمثل شكل الخط ولها القيم التالية :



  1. FontWeight.BLACK
  2. BOLD
  3. EXTRA_BOLD
  4. EXTRA_LIGHT
  5. LIGHT
  6. MEDIUM
  7. NORMAL
  8. SEMI_BOLD
  9. THIN.



  • الثابت Posture :تمثل هذه الخاصية موقف الخط (عادي أو مائل). فإنه يقبل قيمتين



  1. FontPosture.REGULAR
  2. FontPosture.ITALIC.



  • الثابت Size: يمثل حجم الخط


و يتم بناء جملة الأسلوب setFont لتنسيق الخط كما هو موضح ادناه أدناه.

الكود:
text.setFont(Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 20));

مثال كامل

الكود:
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
        
public class TextFontExample extends Application {
   @Override
   public void start(Stage stage) {      
      //Creating a Text object
      Text text = new Text();
        
      //Setting font to the text
      text.setFont(Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 20));
      
      //setting the position of the text
      text.setX(50);
      text.setY(130);          
      
      //Setting the text to be added.
      text.setText("Hi how are you");
        
      //Creating a Group object  
      Group root = new Group(text);  
              
      //Creating a scene object
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage
      stage.setTitle("Setting Font to the text");
        
      //Adding scene to the stage
      stage.setScene(scene);
        
      //Displaying the contents of the stage
      stage.show();
   }      
   public static void main(String args[]){
      launch(args);
   }
}      

و النتيجة على النحو التالى :


ضبط الحدود و الالوان

كما اوضحنا سابقا أن فئة النص scene.text أيضاً يمكنها أن ترث فئة الشكل scene.shape لذلك يمكنك من خلاله ضبط الحد والألوان على عقدة النص أيضًا باستخدام الطريقة setFill () للفئة الشكل (الموروثة) كما يلي -

الكود:
text.setFill (Color.BEIGE)؛

وبالمثل ، يمكنك تعيين لون الحدود للنص باستخدام الطريقة setStroke (). بينما يمكن ضبط عرض الحد باستخدام طريقة setStrokeWidth () كما يلي -
الكود:
//Setting the color
text.setFill(Color.BROWN);
        
//Setting the Stroke  
text.setStrokeWidth(2);
      
//Setting the stroke color
text.setStroke(Color.BLUE);

واليكم المثال الكامل الذى يوضح ذلك

الكود:
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
        
public class StrokeExample extends Application {
   @Override
   public void start(Stage stage) {      
      //Creating a Text object
      Text text = new Text();
      
      //Setting font to the text
      text.setFont(Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 50));
      
      //setting the position of the text  
      text.setX(50);
      text.setY(130);    
      
      //Setting the color
      text.setFill(Color.BROWN);
      
      //Setting the Stroke  
      text.setStrokeWidth(2);
      
      // Setting the stroke color
      text.setStroke(Color.BLUE);        
      
      //Setting the text to be added.
      text.setText("Hi how are you");
        
      //Creating a Group object  
      Group root = new Group(text);  
              
      //Creating a scene object
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage
      stage.setTitle("Setting font to the text");
        
      //Adding scene to the stage
      stage.setScene(scene);
        
      //Displaying the contents of the stage
      stage.show();
   }      
   public static void main(String args[]){
      launch(args);
   }
}      

و النتيجة على النحو التالى :





avatar
زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 336
النقاط : 556
التقيم : 38
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم JavaFx ..مقال30_ التعامل مع النصوص JavaFX - Text

مُساهمة من طرف السنى في الأربعاء أكتوبر 24, 2018 10:49 am

اشكرك زهراء على مجهود هذا 


الله يبارك فيكي 
avatar
السنى
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 214
النقاط : 400
التقيم : 22
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
تستطيع الرد على المواضيع في هذا المنتدى