• 0

كيف أغيّر نوع الخط عند الضغط عليه في جافا؟

أريد تغيير نوع الخط عند الضغط على النص، مثلًا يتغير من Times New Roman إلى Tahoma كيف أقوم بذلك؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

يتم ذلك عن طريق الحدث mousePressed من الصف MouseAdapter حيث يتم إعادة تعريف الحدث mousePressed عن طريق عمل extends للصف MouseAdapter.

أنشئ صف وليكن مثلًا MainClass وقم بإضافة MouseListener لكي يتم الاستماع للحدث mousePressed عند الضغط.

المثال التالي يوضح كيفية إضافة mouseListener لـ Applet في الدالة init حيث سيتم الاستماع وتنفيذ الحدث mousePressed عند الضغط على Applet.

لإنشاء خط Font أنشئ كائن object من نوع Font وقم بتمرير المعاملات name, style, size.

public void init() {
    f = new Font("Dialog", Font.PLAIN, 12);
    msg = "Dialog";
    setFont(f);
    addMouseListener(new MyMouseAdapter(this));
  }

قم باستيراد المكتبات التالية:

import java.applet.Applet;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

الصف MainClass:

public class MainClass extends Applet {
  int next = 0;

  Font f;

  String msg;

  public void init() {
    f = new Font("Dialog", Font.PLAIN, 12);
    msg = "Dialog";
    setFont(f);
    addMouseListener(new MyMouseAdapter(this));
  }

  public void paint(Graphics g) {
    g.drawString(msg, 4, 20);
  }
}

الآن أنشئ صف MyMouseAdapter واجعله يرث من MouseAdapter.

في الدالة MousePressed حدّد ما تريد عمله عند الضغط على النص مثلًا يتغير نوع الخط كما في المثال التالي:

class MyMouseAdapter extends MouseAdapter {
  MainClass sampleFonts;

  public MyMouseAdapter(MainClass sampleFonts) {
    this.sampleFonts = sampleFonts;
  }

  public void mousePressed(MouseEvent me) {
    sampleFonts.next++;
    switch (sampleFonts.next) {
    case 0:
      sampleFonts.f = new Font("Dialog", Font.PLAIN, 12);
      sampleFonts.msg = "Dialog";
      break;
    case 1:
      sampleFonts.f = new Font("DialogInput", Font.PLAIN, 12);
      sampleFonts.msg = "DialogInput";
      break;
    case 2:
      sampleFonts.f = new Font("SansSerif", Font.PLAIN, 12);
      sampleFonts.msg = "SansSerif";
      break;
    case 3:
      sampleFonts.f = new Font("Serif", Font.PLAIN, 12);
      sampleFonts.msg = "Serif";
      break;
    case 4:
      sampleFonts.f = new Font("Monospaced", Font.PLAIN, 12);
      sampleFonts.msg = "Monospaced";
      break;
    }
    if (sampleFonts.next == 4)
      sampleFonts.next = -1;
    sampleFonts.setFont(sampleFonts.f);
    sampleFonts.repaint();
  }
}
1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن