روزنوشت

می نویسم؛ تا به یاد آورم روزی، بودم

روزنوشت

می نویسم؛ تا به یاد آورم روزی، بودم

روزنوشت

من آرزویی ندارم، من از چیزی نمی‌ترسم، من آزادم...

«کازانتزاکیس»

دنبال کنندگان ۳ نفر
این وبلاگ را دنبال کنید
آخرین نظرات

راهنمای اضافه کردن Look And Feel های جاوا به سیستم

سه شنبه, ۲۹ اسفند ۱۳۹۱، ۰۱:۳۵ ق.ظ

جاوا این امکان رو فراهم کرده که برنامه رو با کمترین تغییرات روی پلتفرم های مختلف اجرا کنیم به شکلی که تجربه ی کاربری مشابهی داشته باشن؛ یا حداقل تلاشش بر این بوده.

به هرعنوان وقتی صحبت از توسعه ی Cross-Platform نرم افزار مطرح میشه، یکی از موضوعاتی که باید بهش توجه بشه GUI هست، هر کدوم از این پلتفرم ها فریم وورکی برای ایجاد جلوه ی گرافیکی مختص به اون پلتفرم دارن.

 

مشکلی که خیلی (یا حداقل تعداد زیادی) از برنامه های نوشته شده با جاوا دارن این هست که ظاهر گرافیکی مناسبی ندارن و به نوعی به شکل زیبایی با سیستم هماهنگ نمیشن و ظاهری Native‌ ندارن.

جاوا برای برنامه نویسانش که از فریم وورک Swing استفاده میکنن تعدادی Look And Feel پیشفرض مهیا کرده که ظاهر گرافیکی رو بر اساس اونها ایجاد کنن، و برای هر پلتفرم Look And Feelی طراحی شده که تا جایی که ممکنه با سیستم هماهنگ بشه.

 

اما حداقل در Ubuntu این هماهنگی به شکل مناسبی صورت نگرفته، یعنی Look And Feel پیشفرضی که برای سیستم های لینوکس تهیه شده (با نام gtk) ظاهری نامتعارف نسبت به سایر برنامه های دیگه ی سیستم داره

 

 

اما هر مشکلی راه حلی داره !


پروژه های مختلفی برای توسعه ی Look And Feel های زیبا و مناسب برای جاوا شکل گرفته، از دید یک برنامه نویس شما میتونید این LAF ها رو برای استایل کردن برنامه هاتون استفاده کنید.

اما علاوه بر اون، کاربر نهایی هم میتونه LAF ها رو به سیستمش اضافه کنه و اون رو بطور خاص به برنامه های جاوا اعمال کنه.

 

اول باید LAF ها رو به سیستم اضافه کنیم، برای مثال Tinylaf

هر LAF بصورت یک فایل Jar عرضه میشه که باید در محلی مشخص کپی بشه، در پست قبل اشاره شد که محل نصب JDK و JRE در سیستم کجاست، این فایل های Jar باید در مسیر lib/ext‌ نسبت به پوشه ی JRE کپی بشه، یعنی به عنوان مثال در پوشه ی زیر:

/usr/lib/jvm/java-7-openjdk-i386/jre/lib/ext

 

بعد از اینکه فایل Jar در این مسیر قرار گرفت، توسط Java شناسایی میشه و قابل استفاده هست.

 

برای اعمال LAF مشخص به یک برنامه ی خاص (صرفنظر از اینکه خود برنامه بصورت پیشفرض از چه LAFی استفاده میکنه)، برنامه رو توسط دستور زیر در ترمینال اجرا کنید (فرض کنیم برنامه ی موردنظر نامش app.jar هست و در home قرار داره):

java -Dswing.defaultlaf=de.muntjak.tinylookandfeel.TinyLookAndFeel -jar ~/app.jar

همونطور که می بینید از نام پکیج مربوط به LAF استفاده شده و نه نام فایل Jar، برای اعمال LAF ها باید از نام پکیج و کلاسی که مربوط به LAF هست اطلاع داشته باشید، اگر در توضیحات LAF موردنظر ذکر نشده باشه فایل Jar رو با یکی از برنامه های Archive Manager باز کنید تا نام پکیج و کلاس مربوطه رو پیدا کنید (برای مثال Tinylaf رو دانلود کنید و بازش کنید و با نام پکیجی که در دستور بالا اشاره شد مقایسه کنید، متوجه خواهید شد)

 

در عین حال، بعضی از برنامه ها در تنظیماتشون امکان انتخاب Look And Feel دلخواه که روی سیستم کاربر موجود هست رو فراهم میکنن، اما کپی کردن فایل Jar به تنهایی باعث نمیشه سایر برنامه از وجودش مطلع بشن.

برای معرفی اون به این دسته از برنامه ها، فایلی بنام swing.properties - در صورتی که موجود نبود - در مسیر زیر ایجاد کنید (java-7-openjdk-i386 رو با نام پوشه ی جاوایی که روی سیستمتون نصب هست جایگزین کنید):

/usr/lib/jvm/java-7-openjdk-i386/jre/lib/

محتوای این فایل در سیستم من بعنوان مثال این هست:

# Defalt Look And Feel
swing.defaultlaf=de.muntjak.tinylookandfeel.TinyLookAndFeel
# installed look and feels - system defaults
swing.installedlafs=metal,nimbus,motif,gtk,weblaf,joxy,tinylaf,pgs,aluoxide,napkin,bluelight,classy,simple2d
swing.installedlaf.metal.name=Metal
swing.installedlaf.metal.class=javax.swing.plaf.metal.MetalLookAndFeel
swing.installedlaf.nimbus.name=Nimbus
swing.installedlaf.nimbus.class=com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel
swing.installedlaf.motif.name=CDE/Motif
swing.installedlaf.motif.class=com.sun.java.swing.plaf.motif.MotifLookAndFeel
swing.installedlaf.gtk.name=GTK+
swing.installedlaf.gtk.class=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
# installed look and feels - additional LAFs
swing.installedlaf.weblaf.name=WebLookAndFeel
swing.installedlaf.weblaf.class=com.alee.laf.WebLookAndFeel
swing.installedlaf.joxy.name=Joxy
swing.installedlaf.joxy.class=joxy.JoxyLookAndFeel
swing.installedlaf.tinylaf.name=TinyLookAndFeel
swing.installedlaf.tinylaf.class=de.muntjak.tinylookandfeel.TinyLookAndFeel
swing.installedlaf.pgs.name=PGS
swing.installedlaf.pgs.class=com.pagosoft.plaf.PgsLookAndFeel
swing.installedlaf.aluoxide.name=AluOxide
swing.installedlaf.aluoxide.class=de.javasoft.plaf.synthetica.SyntheticaAluOxideLookAndFeel
swing.installedlaf.bluelight.name=BlueLight
swing.installedlaf.bluelight.class=de.javasoft.plaf.synthetica.SyntheticaBlueLightLookAndFeel
swing.installedlaf.classy.name=Classy
swing.installedlaf.classy.class=de.javasoft.plaf.synthetica.SyntheticaClassyLookAndFeel
swing.installedlaf.simple2d.name=Simple2D
swing.installedlaf.simple2d.class=de.javasoft.plaf.synthetica.SyntheticaSimple2DLookAndFeel
swing.installedlaf.napkin.name=Napkin
swing.installedlaf.napkin.class=napkin.NapkinLookAndFeel

 

توضیحات دستورات موجود در فایل:

  • swing.defaultlaf: مشخص میکنه که کدوم LAF بعنوان LAF پیشفرض سیستم انتخاب بشه، برنامه هایی که از LAF پیشفرض استفاده میکنن با این LAF جدید نمایش داده میشن.
  • swing.installedlafs: لیستی از LAF های موجود رو معرفی میکنه، هر LAF ی که در این لیست وارد کرده باشید در معرض دید سایر برنامه های جاوا برای انتخاب هست.

 

swing.installedlafs=metal,nimbus,motif,gtk,weblaf,joxy,tinylaf,pgs,aluoxide,napkin,bluelight,classy,simple2d

در این خط لیستی از مشخصه ها ایجاد شده که در خط های بعد به هر کدوم از این مشخصه ها یک نام، و نام کامل پکیج و کلاس نسبت داده میشه که برای اعمال این LAF ها ضروری هست. بعنوان مثال:

swing.installedlaf.tinylaf.name=TinyLookAndFeel
swing.installedlaf.tinylaf.class=de.muntjak.tinylookandfeel.TinyLookAndFeel

به این شکل تمام LAF های موجود رو به این فایل اضافه کنید.

بخاطر داشته باشید که اگر لیستی به این فایل اضافه کردید، فقط LAF‌های معرفی شده در این فایل قابل شناسایی خواهند بود (منظور در برنامه هایی هست که از سیستم تقاضا میکنن لیستی از LAF های نصب شده رو در اختیارشون قرار بده تا کاربر یکی از اونها رو انتخاب کنه)

بخاطر همین، LAF های پیشفرضی که در Java قرار داره هم به لیست اضافه شده:

 

swing.installedlaf.metal.name=Metal
swing.installedlaf.metal.class=javax.swing.plaf.metal.MetalLookAndFeel
swing.installedlaf.nimbus.name=Nimbus
swing.installedlaf.nimbus.class=com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel
swing.installedlaf.motif.name=CDE/Motif
swing.installedlaf.motif.class=com.sun.java.swing.plaf.motif.MotifLookAndFeel
swing.installedlaf.gtk.name=GTK+
swing.installedlaf.gtk.class=com.sun.java.swing.plaf.gtk.GTKLookAndFeel

 

تصویر زیر رو با تصویر اول مقایسه کنید:

 

  • موافقین ۰ مخالفین ۰
  • ۹۱/۱۲/۲۹
  • ۱۸۰۲ نمایش
  • Nevercom

اوبونتو

Look And Feel

laf

java

jre

Ubuntu

نظرات (۰)

هیچ نظری هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی