Swingطريقة جعل نص الـ JTextArea
يظهر على سطر جديد عند الحاجة
في لغة جافا الـ Text Area لا يراعي النص الذي نضعه بداخله بشكل تلقائي.
فمثلاً في حال كان عدد الأحرف المدخلة أكبر من عدد الأحرف التي يمكن له إستيعابها في كل سطر, لن يظهر كل النص الذي تم إدخاله.
المثال التالي يعلمك طريقة جعل محتوى كائن الـ JTextArea
ينزل بشكل تلقائي على سطر جديد عند الحاجة.
مثال
import javax.swing.JFrame; import javax.swing.JTextArea; import javax.swing.JScrollPane; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("JTextArea demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس frame.setSize(300, 250); // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 250 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج frame.setLayout(null); // في النافذة بنفسنا Text Area لذلك سنقوم بتحديد مكان الـ Layout Manager أي لم نستخدم أي null هنا وضعنا JTextArea textArea = new JTextArea("Enter anything"); // Text Area أي قمنا بإنشاء JTextArea هنا أنشأنا كائن من الكلاس textArea.setLineWrap(true); // ينزل على سطر جديد في حال كان عدد الأحرف المدخلة أكبر من عدد الأحرف التي يستطيع السطر إستيعابها textArea هنا جعلنا النص الذي ندخله في كائن الـ textArea.setWrapStyleWord(true); // هنا جعلنا الكلمة تظهر على سطر جديد في حال كانت لا تسع في السطر JScrollPane scrollPane = new JScrollPane( textArea ); // بداخله textArea و وضعنا الـ Scroll Pane أي قمنا بإنشاء JScrollPane هنا أنشأنا كائن من الكلاس scrollPane.setBounds(40, 40, 200, 100); // أيضاً textArea و بالتالي كأننا قمنا بتحديد حجم الـ .frame في الـ scrollPane هنا قمنا بتحديد حجم و موقع الـ frame.add(scrollPane); // frame في الـ scrollPane هنا أضفنا الـ frame.setVisible(true); // هنا جعلنا النافذة مرئية } }
ستظهر لك النافذة التالية عند التشغيل. لتجربته قم بإدخال أي نص.
و لاحظ أنه سيعرض النص المدخل في الـ Text Area بشكل مرتب و لا يوجد كلمات مقطوعة ( بمعنى أن جزء من الكلمة ظاهر في سطر و جزء منها في سطر ثاني ).
ثم لاحظ أنه يظهر Scroll Bar عندما يصبح عدد الأسطر المدخلة أكبر من عدد الأسطر التي يمكنها أن تظهر بداخله أمام المستخم.