إستخدم النصوص التوضيحية PlaceHolder فى حقل النص jtextfield

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

إستخدم النصوص التوضيحية PlaceHolder فى حقل النص jtextfield Empty إستخدم النصوص التوضيحية PlaceHolder فى حقل النص jtextfield

مُساهمة من طرف زهراء في الجمعة مارس 06, 2020 3:20 pm

#PlaceHolder هو مصطلح يشير الى النص الذي يظهر في حقل النص (JTextField ) قبل إدراج المحتوى. وبهذه الطريقة يمكنك أن تشير للمستخدم إلى نوع المحتوى الذي نريد إدراجه في هذا الحقل ، أي أنه يعتبر نوع من المساعدة للمستخدم....


إستخدم النصوص التوضيحية PlaceHolder فى حقل النص jtextfield Placeholder

يمكننا إنشاء #PlaceHolder في المكون JTextField في java عن طريق الكتابة فوق طريقة paintComponent لإظهار PlaceHolder عندما يكون حقل النص JTextField فارغًا وإخفاء نص التعليمات بمجرد أن يبدأ المستخدم في الكتابة فيه.

الكود:

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JTextField;

 public class JCTextField extends JTextField {

    // متغير لتخزين قيمة النص المراد استخدامة
    private String placeholder="من فضلك ضع ارقام فقط";
    
    // تحديد لون النص
    private Color phColor= getDisabledTextColor();//getDisabledTextColor();
  
    public JCTextField() {
    
        setHorizontalAlignment(JTextField.RIGHT);
        setPhColor(phColor);
    
    }

  
  
    public String getPlaceholder() {
        return this.placeholder;
    }
    
    public Color getPhColor() {
       return phColor;
    }

    public void setPhColor(Color phColor) {
        this.phColor = phColor;
        
    }    

  
    public void setPlaceholder(final String s) {
        this.placeholder = s;
    }
    
    @Override
 public void paintComponent(Graphics g) {
 super.paintComponent(g);
              
                
                // جملة شرطية للتاكد من ان حقل النص فارغ
 if (super.getText().length() > 0 || placeholder == null) {
 return;
 }
 
                // انشاء كائن الرسم
 Graphics2D g2 = (Graphics2D) g;
                
                // تحديد نوع وحجم الخط المستخدم فى النص
 g2.setFont(new Font("Arial", Font.ITALIC, 16));
                
                // وضع لون الرسم
                g2.setColor(phColor);
                
                // رسم النص بداخل حقل النص
 g2.drawString(placeholder, getInsets().left, g.getFontMetrics().getMaxAscent() + getInsets().bottom);
 }

}

يمكنك ملاحظة أن الفئة اعلاه JCTextField تم تميديها من الفئة  JTextField  و لننفذها في JFrame على النحو التالي:

الكود:
//default
JCTextField jCTextField1 = new JCTextField();
jCTextField1.setLocation(40, 40);
jCTextField1.setPlaceholder("Escribe tu E-Mail");
add(jCTextField1);

//Custom
JCTextField jCTextField2 = new JCTextField();
jCTextField2.setLocation(40, 100);
jCTextField2.setPlaceholder("First Name please");
jCTextField2.setSize( new Dimension(300,56));
jCTextField2.setPhColor( new Color(72,117,210) );
jCTextField2.setFont( new Font("SansSerif",Font.PLAIN, 18) );
add(jCTextField2);


إستخدم النصوص التوضيحية PlaceHolder فى حقل النص jtextfield Placeholder_java-300x172
زهراء
زهراء
........
........

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

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

إستخدم النصوص التوضيحية PlaceHolder فى حقل النص jtextfield Empty رد: إستخدم النصوص التوضيحية PlaceHolder فى حقل النص jtextfield

مُساهمة من طرف أحمد مناع في الجمعة مارس 20, 2020 7:14 am


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

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1052
النقاط : 201908
التقيم : 130
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

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

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

ََ

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


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