Swing - الكلاس JTextField

Java Swing الكلاس JTextField

مقدمة الكلاس JTextField 

الكلاس JTextField يستخدم لإضافة مربع نص (Text Field) في واجهة المستخدم.

ملاحظة: الـ Text Field يظهر سطر واحد بداخله و لا يمكن جعله يتألف من أكثر من سطر.


بنا الكلاس JTextField 

public class JTextField
extends JTextComponent
implements SwingConstants
	

كونستركتورات الكلاس JTextField

الجدول التالي يحتوي على كونستركتورات الكلاس JTextField.

الكونستركتور مع تعريفه
public JTextField() ينشئ كائن من الكلاس JTextField يمثل Text Field فارغ.
public JTextField(String text) ينشئ كائن من الكلاس JTextField يمثل Text Field فيه نص.
مكان الباراميتر text نمرر النص الذي نريد وضعه بداخل الـ Text Field.
public JTextField(int columns) ينشئ كائن من الكلاس JTextField يمثل Text Field فارغ يمكنه أن يحتوي على عدد محدد من الأحرف.
مكان الباراميتر columns نمرر رقم يمثل عدد الأحرف الأقصى التي يمكن إدخالها في الـ Text Field.
public JTextField(String text, int columns) ينشئ كائن من الكلاس JTextField يمثل Text Field فيه نص و يمكنه أن يحتوي على عدد محدد من الأحرف.
  • مكان الباراميتر text نمرر النص الذي نريد وضعه بداخل الـ Text Field.

  • مكان الباراميتر columns نمرر رقم يمثل عدد الأحرف الأقصى التي يمكن إدخالها في الـ Text Field.

دوال الكلاس JTextField

الجدول التالي يحتوي على بعض دوال الكلاس JTextField.

الدالة مع تعريفها
public String getText() ترجع نص كائن الـ JTextField الذي قام بإستدعائها كـ String.
public void setText(String text) تستخدم لتبديل نص كائن الـ JTextField الذي قام بإستدعائها.
مكان الباراميتر text نضع النص الجديد.
public void addActionListener(ActionListener al) تستخدم لتنفيذ أوامر معينة عند النقر داخل كائن الـ JTextField الذي قام بإستدعائها.
مكان الباراميتر al نضع كائن من الكلاس ActionListener و نفعل بداخله Override لدالة إسمها actionPerformed(ActionEvent ae).
public void removeActionListener(ActionListener al) تستخدم لعدم تنفيذ أوامر الدالة addActionListener() من جديد عند النقر بداخل كائن الـ JTextField الذي قام بإستدعائها.

أمثلة شاملة في الكلاس JTextField



Java Swing طريقة إنشاء JTextField

المثال التالي يعلمك طريقة إنشاء كائن من الكلاس JTextField و إضافته في النافذة.


مثال طريقة إنشاء كائن من الكلاس JTextField و إضافته في النافذة.

Main.java
        import javax.swing.JFrame;
        import javax.swing.JTextField;

        public class Main {

        public static void main(String[] args) {

        JFrame frame = new JFrame("JTextField demo");             // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس
        frame.setSize(300, 250);                                  // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 250
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
        frame.setLayout(null);                                    // في النافذة بنفسنا Text Field لذلك سنقوم بتحديد مكان الـ Layout Manager أي لم نستخدم أي null هنا وضعنا

        JTextField textField = new JTextField("Enter anything");  // Text Field أي قمنا بإنشاء JTextField هنا أنشأنا كائن من الكلاس
        textField.setBounds(40, 40, 200, 30);                     // frame في الـ Text Field هنا قمنا بتحديد حجم و موقع الـ

        frame.add(textField);                                     // frame في الـ textField هنا أضفنا الـ

        frame.setVisible(true);                                   // هنا جعلنا النافذة مرئية

        }

        }
      

ستظهر لك النافذة التالية عند التشغيل.

طريقة إضافة JTextField في ال JFrame



Java Swing طريقة تغيير نوع و لون و حجم خط الـ JTextField

المثال التالي يعلمك طريقة تغيير نوع و حجم و لون الخط لكائن الـ JTextField.


مثال طريقة تغيير نوع و حجم و لون الخط لكائن الـ JTextField.

Main.java
        import java.awt.Color;
        import javax.swing.JFrame;
        import javax.swing.JTextField;
        import java.awt.Font;

        public class Main {

        public static void main(String[] args) {

        JFrame frame = new JFrame("JTextField demo");           // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس

        JTextField textField_1 = new JTextField("Red Text");    // textField_1 إسمه JtextField هنا قمنا بإنشاء
        JTextField textField_2 = new JTextField("Blue Text");   // textField_2 إسمه JtextField هنا قمنا بإنشاء
        JTextField textField_3 = new JTextField("Gray Text");   // textField_3 إسمه JtextField هنا قمنا بإنشاء

        Font newFont = new Font("Arial", Font.BOLD, 16);        // حجمه 16 Arial يمثل نوع خط عريض إسمه Font هنا أنشأنا كائن من الكلاس

        textField_1.setBounds(40, 40, 200, 30);                 // frame الأول في الـ Text Field هنا قمنا بتحديد حجم و موقع الـ
        textField_2.setBounds(40, 80, 200, 30);                 // frame الثاني في الـ Text Field هنا قمنا بتحديد حجم و موقع الـ
        textField_3.setBounds(40, 120, 200, 30);                // frame الثالث في الـ Text Field هنا قمنا بتحديد حجم و موقع الـ

        textField_1.setFont(newFont);                           // newFont يستخدم الـ textField_1 هنا جعلنا الـ
        textField_2.setFont(newFont);                           // newFont يستخدم الـ textField_2 هنا جعلنا الـ
        textField_3.setFont(newFont);                           // newFont يستخدم الـ textField_3 هنا جعلنا الـ

        textField_1.setForeground(Color.red);                   // أزرق فاتح textField_1 هنا جعلنا لون خط
        textField_2.setForeground(Color.blue);                  // أحمر textField_2 هنا جعلنا لون خط
        textField_3.setForeground(Color.gray);                  // برتقالي textField_3 هنا جعلنا لون خط

        frame.add(textField_1);                                 // frame في الـ textField_1 هنا أضفنا الـ
        frame.add(textField_2);                                 // frame في الـ textField_2 هنا أضفنا الـ
        frame.add(textField_3);                                 // frame في الـ textField_3 هنا أضفنا الـ

        frame.setSize(300, 250);                                // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 250
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
        frame.setLayout(null);                                  // قمنا بإضافته سابقاً Text Field لذلك قمنا بتحديد مكان كل Layout Manager أي لم نستخدم أي null هنا وضعنا
        frame.setVisible(true);                                 // هنا جعلنا النافذة مرئية

        }

        }
      

ستظهر لك النافذة التالية عند التشغيل.

تغيير لون و حجم و نوع خط ال JtextField



Java Swing طريقة الحصول على النص المدخل في JTextField

المثال التالي يعلمك طريقة الحصول على النص المدخل في الـ Text Field.


مثال طريقة الحصول على النص المدخل في الـ Text Field.

Main.java
        import java.awt.event.ActionEvent;
        import java.awt.event.ActionListener;
        import javax.swing.JButton;
        import javax.swing.JFrame;
        import javax.swing.JLabel;
        import javax.swing.JTextField;

        public class Main {

        static JFrame frame = new JFrame("JTextField demo");        // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس
        static JTextField textField = new JTextField();             // textField إسمه Text Field هنا أنشأنا
        static JLabel label = new JLabel("Enter any thing");        // label إسمه Label هنا أنشأنا
        static JLabel labelResult = new JLabel();                   // فارغ labelResult إسمه Label هنا أنشأنا
        static JButton button = new JButton("Get text");            // button إسمه Button هنا أنشأنا

        public static void main(String[] args) {

        label.setBounds(40, 40, 100, 30);                       // frame في الـ label هنا قمنا بتحديد حجم و موقع الكائن
        textField.setBounds(150, 40, 150, 30);                  // frame في الـ textField هنا قمنا بتحديد حجم و موقع الكائن
        button.setBounds(40, 120, 80, 30);                      // frame في الـ button هنا قمنا بتحديد حجم و موقع الكائن
        labelResult.setBounds(150, 120, 150, 30);               // frame في الـ labelResult هنا قمنا بتحديد حجم و موقع الكائن

        frame.add(label);                                       // frame في الـ label هنا أضفنا الكائن
        frame.add(textField);                                   // frame في الـ textField هنا أضفنا الكائن
        frame.add(button);                                      // frame في الـ button هنا أضفنا الكائن
        frame.add(labelResult);                                 // frame في الـ labelResult هنا أضفنا الكائن

        frame.setSize(360, 250);                                // هنا قمنا بتحديد حجم النافذة. عرضها 360 و طولها 250
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
        frame.setLayout(null);                                  // لذلك قمنا بتحديد مكان كل شيء قمنا بإضافته في النافذة Layout Manager أي لم نستخدم أي null هنا وضعنا
        frame.setVisible(true);                                 // هنا جعلنا النافذة مرئية

        button.addActionListener(new ActionListener() {         // button هنا نضع الأوامر التي نريد تنفيذها عند النقر على الزر
        @Override
        public void actionPerformed(ActionEvent e) {
        labelResult.setText(textField.getText());       // button عند النقر على الـ label و وضعه كنص للكائن textField سيتم جلب النص الموجود في الكائن
        }
        });

        }

        }
      

ستظهر لك النافذة التالية عند التشغيل.

قم بإدخال أي نص في الـ Text Field ثم أنقر على الـ Button.

طريقة الحصول على النص المدخل في ال JTextField عند النقر على زر في جافا



Java Swing طريقة تحويل النصف المدخل في JTextField إلى رقم

المثال التالي يعلمك طريقة الحصول على النص المدخل في Text Field و تحويله إلى رقم.

المثال عبارة واجهة مستخدم فيها إثنين Text Field, إثنين Label و Button واحد.
عند النقر على الـ Button سيتم جمع القيم المدخلة في الـ Text Fields.


مثال طريقة الحصول على النص المدخل في Text Field و تحويله إلى رقم.

Main.java
        import java.awt.Color;
        import java.awt.event.ActionEvent;
        import java.awt.event.ActionListener;
        import javax.swing.JButton;
        import javax.swing.JFrame;
        import javax.swing.JLabel;
        import javax.swing.JTextField;

        public class Main {

        static JLabel label_plus = new JLabel("+");                 // label_plus إسمه Label هنا أنشأنا
        static JLabel label_result = new JLabel();                  // فارغ label_result إسمه Label هنا أنشأنا
        static JFrame frame = new JFrame("JTextField demo");        // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس
        static JTextField text_field_1 = new JTextField();          // text_field_1 إسمه Text Field هنا أنشأنا
        static JTextField text_field_2 = new JTextField();          // text_field_2 إسمه Text Field هنا أنشأنا
        static JButton button = new JButton("=");                   // button إسمه Button هنا أنشأنا

        public static void main(String[] args) {

        label_plus.setBounds(135, 40, 50, 30);                  // frame في الـ label هنا قمنا بتحديد حجم و موقع الكائن
        label_result.setBounds(340, 40, 90, 30);                // frame في الـ label هنا قمنا بتحديد حجم و موقع الكائن
        text_field_1.setBounds(40, 40, 80, 30);                 // frame في الـ textField هنا قمنا بتحديد حجم و موقع الكائن
        text_field_2.setBounds(160, 40, 80, 30);                // frame في الـ textField هنا قمنا بتحديد حجم و موقع الكائن
        button.setBounds(270,40, 50, 30);                       // frame في الـ button هنا قمنا بتحديد حجم و موقع الكائن

        frame.add(label_plus);                                  // frame في الـ label_plus هنا أضفنا الكائن
        frame.add(label_result);                                // frame في الـ label_result هنا أضفنا الكائن
        frame.add(text_field_1);                                // frame في الـ text_field_1 هنا أضفنا الكائن
        frame.add(text_field_2);                                // frame في الـ text_field_2 هنا أضفنا الكائن
        frame.add(button);                                      // frame في الـ button هنا أضفنا الكائن

        frame.setSize(500, 140);                                // هنا قمنا بتحديد حجم النافذة. عرضها 500 و طولها 140
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
        frame.setLayout(null);                                  // لذلك قمنا بتحديد مكان كل شيء قمنا بإضافته في النافذة Layout Manager أي لم نستخدم أي null هنا وضعنا
        frame.setVisible(true);                                 // هنا جعلنا النافذة مرئية

        // button هنا نضع الأوامر التي نريد تنفيذها عند النقر على الزر
        button.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
        try {
        // num_2 و num_1 و تخزينهم في المتغيرات text_field_2 و الـ text_field_1 أولاً سيتم جلب الأرقام التي سيدخلها المستخدم في الـ
        double num_1 = Double.valueOf(text_field_1.getText());
        double num_2 = Double.valueOf(text_field_2.getText());

        // label_result في حال قام المستخدم بإدخال أرقام, سيتم جمعهم ثم سيوضع الناتج كنص مكان المتغير
        label_result.setForeground(Color.black);
        label_result.setText("" + (num_1+num_2));
        }
        catch(Exception ex)
        {
        // label_result في حال لم يقم المستخدم بإدخال أرقام, سيتم عرض النص التالي و تلوينه بالأحمر
        label_result.setForeground(Color.red);
        label_result.setText("خطأ في الإدخال !");
        }
        }
        });

        }

        }
      

ستظهر لك النافذة التالية عند التشغيل.

قم بإدخال أي نص في الـ Text Field ثم أنقر على الـ Button.

تحويل النص الموجود في ال JtextField إلى عدد في جافا