البرمجة

استخدام SwingUtilities في Java

Title: استخدام بسيط لطرق SwingUtilities الثابتة في Java

في Java ، تقدم واجهة SwingUtilities مجموعة من الطرق الثابتة التي تساعد في إدارة التعامل مع Swing components في بيئة التطبيقات الرسومية. إليك مثالًا بسيطًا على كيفية استخدام إحدى هذه الطرق، وتحديدًا paintComponent، والتي تسمح برسم المكونات الرسومية.

java
import javax.swing.*; import java.awt.*; public class SimpleSwingExample { public static void main(String[] args) { SwingUtilities.invokeLater(() -> { JFrame frame = new JFrame("Simple Swing Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel() { @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawString("Hello, World!", 20, 20); } }; frame.add(panel); frame.setSize(200, 200); frame.setVisible(true); }); } }

في هذا المثال البسيط، نقوم بإنشاء نافذة Swing بسيطة تحتوي على لوحة تقوم برسم سلسلة نصية تقول “Hello, World!” عند تشغيل التطبيق. تم استخدام طريقة invokeLater لتشغيل كود Swing على خيط الواجهة الرسومية لضمان التوافقية.

هذا المثال يظهر كيفية استخدام الطرق الثابتة في SwingUtilities لرسم المكونات الرسومية بسهولة وبساطة.

المزيد من المعلومات

بالطبع! في Java، تقدم واجهة SwingUtilities العديد من الطرق الثابتة الأخرى التي تساعد في تنظيم وتنفيذ العمليات ضمن بيئة Swing. إليك بعض الأمثلة البسيطة:

  1. invokeLater(Runnable):
    يستخدم هذا الطريق لتنفيذ رمز Swing على خيط الواجهة الرسومية. يُفضل استخدامه لتغيير واجهة المستخدم في وقت التشغيل.

    java
    SwingUtilities.invokeLater(() -> { // Code to be executed on the Event Dispatch Thread });
  2. invokeAndWait(Runnable):
    يستخدم هذا الطريق لتنفيذ رمز Swing على خيط الواجهة الرسومية وانتظار انتهاء تنفيذه. يُستخدم بشكل أساسي في حالات نادرة حيث يجب على الخيط الحالي الانتظار لحين الانتهاء من التنفيذ.

    java
    try { SwingUtilities.invokeAndWait(() -> { // Code to be executed on the Event Dispatch Thread }); } catch (InterruptedException | InvocationTargetException e) { e.printStackTrace(); }
  3. isEventDispatchThread():
    يُستخدم هذا الطريق للتحقق مما إذا كان الخيط الحالي هو خيط الواجهة الرسومية أم لا. يمكن استخدامه لضمان تنفيذ الكود على الواجهة الرسومية فقط.

    java
    if (SwingUtilities.isEventDispatchThread()) { // Code running on the Event Dispatch Thread } else { // Code not running on the Event Dispatch Thread }
  4. convertPoint(Component, Point, Component):
    يُستخدم هذا الطريق لتحويل نقطة من نظام إحداثيات مكون إلى نظام إحداثيات آخر.

    java
    Point pointInComponent1 = new Point(10, 10); SwingUtilities.convertPoint(component1, pointInComponent1, component2);

هذه بعض الطرق البسيطة التي تقدمها SwingUtilities في Java. تُستخدم هذه الطرق لتسهيل تطوير وتنفيذ التطبيقات التي تعتمد على واجهة Swing.

زر الذهاب إلى الأعلى