التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTextField)

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTextField)

مُساهمة من طرف زهراء في الأربعاء يناير 08, 2014 12:00 pm

بسم الله الرحمن الرحيم


_ العنصر حقل النص JTextField هو عنصر أساسي في المكتبة الرسومية Swing الذي يتيح للمستخدمين تحرير سطر واحد من النص. يسرد هذا المقال كيفية التعامل مه من خلال الشفرة

1_ إنشاء العنصر JTextField

هناك اكثر من طريقة لانشاء العنصر JTextField وهم على النحو التالى :


  • إنشاء العنصر مع بعض النصوص الاولية 

    الرمز:
    JTextField textField = new JTextField("This is a text");

    ويمكنك ملاحظة ان حجم حقل النص JTextField يساوى طول النص المكتوب به





  • إنشاء العنصر بتحديد الحجم و بدون نصوص أولية

    الرمز:
    JTextField textField = new JTextField(20);

    ويمكنك ملاحظة أننا قمنا بتحديد حجم النص بالقيمة 20




  • إنشاء العنصر بتحديد الحجم وإضافة نصوص أولية

    الرمز:
    JTextField textField = new JTextField("This is a text", 20);





  • إنشاء حقل النص فارغ ثم تعيين النص وعدد الأعمدة في وقت لاحق:

    الرمز:
    JTextField textField = new JTextField();
    textField.setText("This is a text");
    textField.setColumns(20);



2_الحصول على أو تعيين محتوى حقل النص

_يمكنك إستخدام الاسلوب getText للحصول على محتوى حقل النص على النحو التالى :

الرمز:
String content = textField.getText();

_ كما يمكنك الحصول جزء معين من محتوى النص على النحو التالى :

الرمز:
int offset = 5;
int length = 10;
 
try {
    content = textField.getText(offset, length);
} catch (BadLocationException ex) {
   }

والكود اعلاه يقوم بالحصول على 10 احرف من النص بداية من الحرف رقم 5 فى النص

_ يمكنك تعين قيمة المحتوى للحقل على النحو التالى :

الرمز:
textField.setText("another text");

3_إنشاء نص تلميح tooltip لحقل النص

_ يمكنك استخدام الاسلوب setToolTipText لعمل نص تلميح لمكونات الرسومية فى الجافا وهو النص الذى يظهر عند وقوف الماوس على هذا العنصر ....وذلك على النحو التالى :

الرمز:
textField.setToolTipText("Please enter some text here");


_كما يمكنك تنسيق نص التلميح هذا باستخدام وسم html على النحو التالى :

الرمز:
textField.setToolTipText("<html><b><font color=red>"
                    + "Please enter some text here" + "</font></b></html>");


4_تحديد تركيز الإدخال input focus

عادة، يتم عمل تركيز لحقل النص عندما يقوم المستخدم بالنقر عليها أو الضغط على مفتاح TAB. لتعيين التركيز المدخلات برمجيا، يمكنك استخدم التعليمات البرمجية التالية و التى تحديد تركيز الإدخال في البداية فقط بعد عرض الحاوية (مثل JFrame):

الرمز:
frame.setVisible(true);
textField.requestFocusInWindow();

_ كما يمكنك تحديد تركيز الإدخال في أي وقت حيث من المستحسن أن تطلب من التركيز داخل الطريقة  SwingUtilities.invokeLater () على النحو التالى :

الرمز:
SwingUtilities.invokeLater(new Runnable() {
    @Override
    public void run() {
        textField.requestFocusInWindow();
    }
});

5_ إضافة حدث لحقل النص event listeners

يمكنك إضافة مستمع حدث لحقل النص بكل سهولة و يسر باستخدام الاسلوب addKeyListener ومن خلالة تستطيع عمل أحداث للحقل فى طرق عدة على النحو التالى :


  • حدث النقر على مفتاح Enter :

    الرمز:
    textField.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            System.out.println("The entered text is: " + textField.getText());
        }
    });



6_ تحديد النص فى العنصر  JTextField


  • تحديد النص كاملا :

    الرمز:
    textField.selectAll();


  • تحديد جزء من النص :

    الرمز:
    textField.setSelectionStart(8);
    textField.setSelectionEnd(12);


  • تعيين لون لاختيار والنص المحدد:

    الرمز:
    textField.setSelectionColor(Color.YELLOW);
    textField.setSelectedTextColor(Color.RED);






7_ تخصيص مظهر JTextField

_توجد بعض الشفرات التى يمكنك استخدامها لتخصيص مظهر حقل النص JTextField على النحو التالى :


  • تعطيل تحرير حقل النص

    الرمز:
    textField.setEditable(false);


  • محاذاة النص بداخل الحقل

    الرمز:
    textField.setHorizontalAlignment(JTextField.CENTER);


    وتوجد قيم اخرى للمحاذاة وهى 


    الرمز:
    JTextField.LEFT
    JTextField.CENTER
    JTextField.RIGHT
    JTextField.LEADING
    JTextField.TRAILING

  • تنسيق نوع الخط و حجمة ولون خلفية الحقل على النحو التالى :

    الرمز:
    textField.setFont(new java.awt.Font("Arial", Font.ITALIC | Font.BOLD, 12));
    textField.setForeground(Color.BLUE);
    textField.setBackground(Color.YELLOW);



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

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

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

رد: التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTextField)

مُساهمة من طرف infomath في الثلاثاء فبراير 04, 2014 7:42 am

السلام عليكم أختي زهراء شكرا لك على الموضوعلى
أضفت لى معلومات لم أعرفها شكراا
لدي استفسار عن كيفية جعل jtextfield يكتب  باللغة العربية مباشرة أي جعل لغة الكتابة تتغير بشكل آلي بوضع 
الفأرة في jtextfield 
شكرا وجزاك الله خيرا

infomath
.
.

تاريخ التسجيل : 03/02/2014
المساهمات : 2
النقاط : 2
التقيم : 0
الدولة : الجزائر
الجنس : انثى

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

رد: التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTextField)

مُساهمة من طرف زهراء في الثلاثاء فبراير 04, 2014 8:11 am

infomath كتب:السلام عليكم أختي زهراء شكرا لك على الموضوعلى
أضفت لى معلومات لم أعرفها شكراا
لدي استفسار عن كيفية جعل jtextfield يكتب  باللغة العربية مباشرة أي جعل لغة الكتابة تتغير بشكل آلي بوضع 
الفأرة في jtextfield 
شكرا وجزاك الله خيرا

بل شكر لكى أختى الكريمة على مرورك و بارك الله فيكى

بالنسبة لسؤال قوى بكتابة الكود التالى فى مستمع FocusGained للمكون jtextfield على النحو التالى :

الرمز:

private void textFirstNameFocusGained(java.awt.event.FocusEvent evt) {
 textFirstName.getInputContext().selectInputMethod(new Locale("ar", "SA"));
textFirstName.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 
}

حيث أن :textFirstName هو الاسم البرمجى للمكون jtextfield



واشكرك على مرورك

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

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

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

jtextfield

مُساهمة من طرف infomath12 في الثلاثاء فبراير 04, 2014 1:46 pm

    شكرا جزيلا أختي على ردك السرييع جزاك الله خيرا
لكن عندما اضفت الكود التالي لم تتغير اللغة من فضلك ماهو الخطأ لماذا لم تتغير اللغة
motF من صنف JTextField


الرمز:

}(  motF.addFocusListener(new FocusListener(){public void focusGained(FocusEvent arg0


{;(textFirstNameFocusGained(arg  
       
        @Override
      }(  public void focusLost(FocusEvent arg0
            // TODO Auto-generated method stub
           
        {
           
    ;({

شكرا لك مرة أخرى


عدل سابقا من قبل أحمد مناع في الأربعاء فبراير 05, 2014 9:52 am عدل 1 مرات (السبب : للتنسيق)

infomath12
زائر


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

رد: التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTextField)

مُساهمة من طرف زهراء في الأربعاء فبراير 05, 2014 10:24 am

أختى الكريمة اذا اردتى استخدام الشفر فى انشاء JTextField بدلا من سحبة ووضعة على النافذة كما فى النت بينز مثلا فعليك استخدام الكود على النحو التالى :

كود انشاء الكائن :

الرمز:
final JTextField textField = new JTextField(20);  


كود انشاء مستمع addFocusListener بالاضافة الى كود تغير اللغة تلقائى عندما يتم التركيز على الحقل textfield على النحو التالى :

الرمز:
     
  textField.addFocusListener(new java.awt.event.FocusAdapter() {

public void focusGained(java.awt.event.FocusEvent evt) {
       
textField.getInputContext().selectInputMethod(new Locale("ar", "SA"));
textField.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
         
            }
});

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

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

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

رد: التعامل مع العناصر الرسومية فى الجافا باستخدام الشفرة (العنصر JTextField)

مُساهمة من طرف infomath في الأربعاء فبراير 12, 2014 3:45 pm

شكرا جزيلا وأعتذر من التاخر
الكود ناجح
شكرا جزيييييييييييييلا اختي  Smile

infomath
.
.

تاريخ التسجيل : 03/02/2014
المساهمات : 2
النقاط : 2
التقيم : 0
الدولة : الجزائر
الجنس : انثى

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

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


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