logo

كيفية مسح الشاشة في جافا

في Java، عندما نقوم بالتجميع والتشغيل برامج جافا ، يتم العبث بوحدة التحكم أو الشاشة بالكثير من الأوامر والمخرجات. لتقليل محتوى العبث في وحدة التحكم أو مسحه، نحتاج إلى ذلك مسح الشاشة في جافا حتى نتمكن من تنفيذ البرامج بطريقة صحيحة. في هذا القسم سوف نتعلم كيفية مسح وحدة التحكم أو الشاشة في جافا.

هناك الطرق التالية لمسح الشاشة أو وحدة التحكم جافا :

استخدام رمز الهروب ANSI

تسلسل الهروب ANSI هو إشارة قياسية داخل النطاق للتحكم في موضع المؤشر. في المثال التالي، استخدمنا رمز الهروب 33[H33[2J. دعونا نحلل الكود ونفهمه بشكل منفصل.

    33:وهو يمثل حرف الهروب ASCII. قيمته ANSI هي 27. وهو يرمز إلى خروج .[:وهو يمثل تسلسل الهروب. ومن المعروف أيضا باسم منظمة التضامن المسيحي الدولية (مؤشر تسلسل التحكم). يبدأ أمر CSI بـ خروج[ تليها صفر أو أكثر من المعلمات.

من خلال الجمع بين الرموز المذكورة أعلاه، نحصل على 33[ أو خروج[.

    33[ح:يقوم بتحريك المؤشر في الزاوية العلوية اليسرى من الشاشة أو وحدة التحكم.33[2J:يقوم بمسح الشاشة من المؤشر إلى نهاية الشاشة.

دعونا نجمع بين الرمزين المذكورين أعلاه، نحصل على ذلك 33[H33[2J. تعمل مجموعة التعليمات البرمجية على مسح الشاشة أو وحدة التحكم.

تستخدم أوامر CSI القيم الافتراضية إذا لم نحدد أي معلمة في الأمر. يمكننا استخدام الكود التالي لمسح الشاشة في Java:

ClearScreenExample1.java

 public class ClearScreenExample1 { public static void main(String[] args) { System.out.print('33[H33[2J'); System.out.flush(); } } 

في المثال أعلاه، استخدمنا نفس الكود (33[H33[2J) الذي شرحناه أعلاه. يقوم بمسح وحدة التحكم. لقد استخدمنا أيضًا دافق () وظيفة تقوم بإعادة ضبط موضع المؤشر في أعلى الشاشة.

بيان if-else Java

استخدام الأوامر الخاصة بالمنصة

يمكننا أيضًا استخدام الأمر وفقًا للنظام الأساسي الذي نستخدمه. في هذه الطريقة، أولاً نحصل على خاصية النظام باستخدام الحصول على الملكية () طريقة فئة النظام. بعد ذلك، نختار الأمر المستخدم في النظام الأساسي لمسح وحدة التحكم.

طريقة System.getProperty()

إنها الطريقة الثابتة لفئة النظام. يتم استخدامه للحصول على خاصية النظام المشار إليها بواسطة المفتاح المحدد. يقوم بتوزيع المعلمة مفتاح من النوع سلسلة. ويحدد اسم خاصية النظام. يقوم بإرجاع خاصية النظام و

بناء الجملة:

 public static String getProperty(String key) 

يطرح الاستثناءات التالية:

    استثناء أمان:إذا كان هناك مدير أمان وكان أسلوب checkPropertyAccess() الخاص به لا يسمح بالوصول إلى خاصية النظام المحددة.استثناء NullPointer:إنه يطرح الاستثناء إذا لم نحدد المفتاح فارغًا.غير الشرعيين استثناء حجة:فإنه يلقي الاستثناء إذا كان المفتاح فارغا.

لنقم بإنشاء برنامج Java يقوم بمسح وحدة التحكم باستخدام الأمر الخاص بالنظام الأساسي.

ClearScreenExample2.java

 public class ClearScreenExample2 { public final static void clearConsole() { public static void main(String[] args) { try { final String os = System.getProperty('os.name'); if (os.contains('Windows')) { Runtime.getRuntime().exec('cls'); } } catch (final Exception e) { e.printStackTrace(); } } 

في المثال أعلاه، قمنا بتحديد شبابيك نظام التشغيل والأمر المستخدم لمسح وحدة التحكم هو cls . يمكننا أيضًا استخدام الكود التالي في البرنامج أعلاه:

 public final static void clearConsole() { try { final String os = System.getProperty('os.name'); if (os.contains('Windows')) { Runtime.getRuntime().exec('cls'); } else { Runtime.getRuntime().exec('clear'); } } catch (final Exception e) { e.printStackTrace(); } } 

استخدام مترجم سطر الأوامر

في هذه الطريقة، نقوم باستدعاء مترجم سطر الأوامر (CMD). بعد استدعاء المترجم ينفذ cls يأمر. يسمح بتنفيذ الأوامر المضمنة. نحتاج الآن إلى توصيل قناة إخراج المترجم الفوري بقناة إخراج عملية Java. ويمكن القيام بذلك باستخدام طريقة inheritIO().

ClearScreenExample3.java

 import java.io.IOException; public class ClearScreenExample3 { public static void main(String... arg) throws IOException, InterruptedException { new ProcessBuilder('cmd', '/c', 'cls').inheritIO().start().waitFor(); } } 

بمجرد اتصال البرنامج أعلاه بوحدة التحكم، فإنه يبدأ من سطر الأوامر دون إعادة توجيه الإخراج ويمسح الشاشة أو وحدة التحكم.