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 فيه نص و يمكنه أن يحتوي على عدد محدد من الأحرف.
|
دوال الكلاس 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
و إضافته في النافذة.
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); // هنا جعلنا النافذة مرئية } }
•ستظهر لك النافذة التالية عند التشغيل.
Java Swing طريقة تغيير نوع و لون و حجم خط الـ JTextField
المثال التالي يعلمك طريقة تغيير نوع و حجم و لون الخط لكائن الـ JTextField
.
مثال طريقة تغيير نوع و حجم و لون الخط لكائن الـ JTextField
.
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); // هنا جعلنا النافذة مرئية } }
•ستظهر لك النافذة التالية عند التشغيل.
Java Swing طريقة الحصول على النص المدخل في JTextField
المثال التالي يعلمك طريقة الحصول على النص المدخل في الـ Text Field.
مثال طريقة الحصول على النص المدخل في الـ Text Field.
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.
Java Swing طريقة تحويل النصف المدخل في JTextField
إلى رقم
المثال التالي يعلمك طريقة الحصول على النص المدخل في Text Field و تحويله إلى رقم.
المثال عبارة واجهة مستخدم فيها إثنين Text Field, إثنين Label و Button واحد.
عند النقر على الـ Button سيتم جمع القيم المدخلة في الـ Text Fields.
مثال طريقة الحصول على النص المدخل في Text Field و تحويله إلى رقم.
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.