JavaFX چیست؟

JavaFX یکی از کتابخانه‌های جاوا می‌باشد که به منظور ساخت برنامه‌های کاربردی اینترنتی مورد استفاده قرار می‌گیرد. برنامه‌های نوشته شده با استفاده از این کتابخانه را می‌توان بر روی چندین سیستم عامل اجرا کرد. با استفاده از JavaFX می‌توانیم برنامه خود را بر روی دستگاه‌های مختلفی از جمله کامپیوترهای دسکتاپ، تلفن‌های همراه، تلویزیون‌ها، تبلت ها و … به اجرا در آوریم. برنامه نویسان جاوا برای ایجاد نرم افزارهای رابط کاربر گرافیکی یا Application GUI (Graphical User Interface) ها، از کتابخانه‌هایی مانند Advanced Windowing Toolkit و Swing استفاده می‌کردند.

پس از ظهور JavaFX، برنامه نویسان جاوا می‌توانستند GUI Application هایی با محتوای غنی تر و کارآمد تری را با JavaFX ایجاد کنند. در این آموزش ما به بررسی تمام اجزای ضروری JavaFX خواهیم پرداخت و شما می‌توانید برنامه‌های کاربردی تحت وب را به صورت کارآمدی توسعه دهید.همچنین فرض بر این است که خواننده این آموزش، دانش قبلی در مورد برنامه نویسی جاوا را دارد.

برنامه‌های کاربردی اینترنتی (Rich Internet Applications) آن دسته از برنامه‌های تحت وب می‌باشند که ویژگی‌ها و تجربه ای مشابه برنامه‌های دسکتاپ را برای کاربر فراهم می‌کنند.زمانی که این برنامه‌ها را با برنامه‌های معمولی تحت وب مقایسه می‌کنید تجربه بصری بهتری را به کاربر ارائه می‌دهند.این برنامه‌ها به عنوان پلاگین ها و یا به عنوان ماشین مجازی در اختیار کاربر قرار می‌گیرند و به منظور ایجاد جذابیت و انیمیشنی کردن برنامه‌های ایستا سنتی مورد استفاده قرار می‌گیرند.

برنامه‌های اینترنتی بر خلاف برنامه‌های سنتی دسکتاپی به نرم افزار اضافه ای برای اجرا شدن نیاز ندارند.ولی شما بسته به نیاز باید نرم افزارهایی نظیر ActiveX، Java، Flash را نصب کنید. در یک برنامه اینترنتی، نمایش گرافیکی در سمت کلاینت (کاربر) انجام می‌شود.به بیان دیگر اعمال تغییرات در داده‌های یک برنامه اینترنتی در سمت سرور انجام می‌شود، در حالی که ویرایش اشیا مرتبط به هم در سمت کلاینت (کاربر انجام می‌شود). برای ایجاد برنامه‌های اینترنتی سه تکنولوژی وجود دارد که عبارت‌اند از

  • Adobe Flash
  • این پلتفرم نرم افزاری توسط سیستم‌های Adobe توسعه داده شده است و برای ساخت برنامه‌های اینترنتی مورد استفاده قرار می‌گیرد.به علاوه شما می‌توانید برنامه‌های دیگری نظیر وکتور، انیمیشن، بازی‌های مرورگرها، برنامه‌های دسکتاپ، برنامه‌های موبایل، بازی‌ها و … را ایجاد کنید.Adobe Flash رایج‌ترین پلتفرم برای توسعه و اجرای برنامه‌های اینترنتی با ضریب نفوذ 96 درصد در مرورگرهای دسکتاپی می‌باشد.

  • Microsoft Silverlight
  • دقیقاً مانند Adobe Flash، مایکروسافت سیلور لایت نیز یک فریم ورک نرم افزاری برای توسعه برنامه‌های اینترنتی می‌باشد.در ابتدا این فریم ورک برای ارائه مدیا به صورت Stream یا جریان داده ای مورد استفاده قرار می‌گرفت.نسخه حال حاضر از عناصر چند رسانه ای، گرافیک‌ها و انیمیشن‌ها به خوبی پشتیبانی می‌کند.این پلتفرم در حال حاضر به ندرت مورد استفاده قرار می‌گیرد و دارای ضریب نفوذ ۶۶ درصد در مرورگرهای دسکتاپی می‌باشد.

  • JavaFX
  • یکی از کتابخانه‌های جاوا می‌باشد که برای شما امکان توسعه برنامه‌های اینترنتی را فراهم می‌کند.با استفاده از تکنولوژی جاوا، این برنامه‌ها می‌توانند با ضریب نفوذ 76 درصد در مرورگرها مورد استفاده قرار گیرند.

 

JavaFX چیست؟

JavaFX یکی از کتابخانه‌های جاوا می‌باشد که به منظور ساخت برنامه‌های کاربردی اینترنتی مورد استفاده قرار می‌گیرد.برنامه ای نوشته شده با استفاده از این کتابخانه را می‌توان بر روی چندین سیستم عامل اجرا کرد.با استفاده از JavaFX می‌توانیم برنامه خود را بر روی دستگاه‌های مختلفی از جمله کامپیوترهای دسکتاپ، تلفن‌های همراه، تلویزیون‌ها، تبلت ها و … به اجرا در آوریم.

برنامه نویسان جاوا برای ایجاد نرم افزارهای رابط کاربر گرافیکی یا Application GUI (Graphical User Interface) ها، از کتابخانه‌هایی مانند Advanced Windowing Toolkit و Swing استفاده می‌کردند.پس از ظهور JavaFX، برنامه نویسان جاوا می‌توانستند GUI Application هایی با محتوای غنی تر و کارآمد تری را با JavaFX ایجاد کنند.

چرا به JavaFX نیاز داریم؟

برای توسعه برنامه‌های سمت کلاینت ( کاربر) با امکانات غنی، برنامه نویسان می‌توانند با استفاده از کتابخانه‌های مختلف، امکاناتی مانند مدیا، کنترل‌های واسط کاربر، وب، 2D، 3D و … را به برنامه‌های خود اضافه کنند.JavaFX شامل تمام این امکانات در یک کتابخانه می‌باشد.به علاوه اینکه توسعه دهنده‌ها می‌توانند به امکانات موجود در کتابخانه‌های جاوا مانند Swing نیز دسترسی داشته باشند.

JavaFX مجموعه ای از API ها یا واسط‌های برنامه نویسی گرافیکی را ارائه می‌دهد که اهرمی برای GPU های (واحد پردازش گرافیکی) مدرن می‌باشند و از طریق آن سخت افزار می‌تواند تولید گرافیک را سرعت بخشد. همچنین JavaFX واسط‌هایی را ارائه می‌دهد که با استفاده از آن‌ها توسعه دهندگان می‌توانند انیمیشن‌های گرافیکی و کنترل‌های واسط کاربری را با یکدیگر ترکیب کنند.

JavaFX می‌تواند با تکنولوژی‌هایی مانند Java، Groovy و JRuby که بر مبنای JVM هستند مورد استفاده قرار گیرد.توسعه دهندگانی که JavaFX را انتخاب می‌کنند نیاز به یادگیری تکنولوژی جدیدی ندارند و همان دانش قبلی که در مورد تکنولوژی‌هایی که پیش تر نام برده شد، برای توسعه برنامه‌های اینترنتی با استفاده از JavaFX کافی می‌باشد. ویژگی‌های مهم JavaFX عبارت‌اند از :

نوشته شده در زبان جاوا کتابخانه JavaFX در جاوا نوشته شده است و برای زبان‌هایی که می‌توانند بر روی JVM اجرا شوند مانند Java، Groovy و JRuby در دسترس است
FXML JavaFX امکانی وجود دارد که با نام FXML شناخته می‌شود و یک زبان نشانه گذاری declarative شبیه به HTML می‌باشد.هدف کلی این زبان تعریف یک واسط کاربری است.
Scene Builder JavaFX برنامه ای به نام Scene builder را ارائه می‌دهد که به منظور یکپارچه سازی برنامه در IDE هایی از قبیل Eclipse و NetBeans، کاربران می‌توانند به طراحی واسط با drag & drop دسترس داشته باشند که برای توسعه برنامه‌های FXML به کار گرفته می‌شود.(دقیقاً شبیه Drag & Drop در Swing و DreamWeaver)
Swing Interoperability در برنامه JavaFX شما می‌توانید محتوای Swing را با استفاده از کلاس SwingNode به آن embed کنید.به طور مشابه شما همچنین می‌توانید برنامه‌هایی Swing موجود را با استفاده از امکانات JavaFX نظیر embedded web content و rich graphic media به روز رسانی کنید.
Built-in UI controls کنترل‌های واسط کاربری که کتابخانه JavaFX در اختیار ما قرار می‌دهد به ما اجازه می‌دهد برنامه‌هایی با تمام امکانات را توسعه دهیم.
CSS like Styling JavaFX به ما قابلیت ایجاد سبک (Style) مانند CSS را می‌دهد که با استفاده از آن شما می‌توانید طراحی برنامه خود را با دانش مختصر از CSS بهبود ببخشید.
Canvas and Printing API JavaFX برای ما Canvas را ارائه می‌دهد که یکی از حالت‌های حالت سبک می‌باشد.در پکیج javafx.scene.canvas مجموعه ای از کلاس‌هایی برای Canvas وجود دارد که به ما اجازه می‌دهد بتوانیم به صورت مستقیم در ناحیه Scene به رسم بپردازیم.JavaFX همچنین کلاس‌هایی را با هدف چاپ در اختیار ما قرار می‌دهد.
Rich set of API’s کتابخاkنه JavaFX مجموعه ای غنی از واسط هلی برنامه نویسی را برای توسعه برنامه‌های GUI، گرافیک دو بعدی و سه بعدی و … در اختیار ما قرار می‌دهد.این مجموعه همچنین شامل قابلیت‌های پلتفرم جاوا نیز می‌باشد.بنابراین با استفاده از این API شما می‌توانید به ویژگی‌های زبان جاوا از قبیل Generic ها، Annotation ها، Multithreading و عبارت Lambda دسترسی داشته باشید.کتابخانه‌های سنتی جاوا
Integrated Graphics library JavaFX کلاس‌هایی را برای گرافیک دو بعدی و سه بعدی ارائه می‌دهد.
Graphics pipeline JavaFX از گرافیک‌هایی که بر مبنای prism ایجاد می‌شوند نیز پشتیبانی می‌کند.اما پردازش تصویر مستقل از کارت گرافیک می‌باشد و به صورت نرم افزار این کار انجام می‌شود.

 

تاریخچه JavaFX

JavaFX در اصل توسط Chris Oliver و زمانی که برای یک کمپانی به نام See Beyond Technology Corporation توسعه داده شد که بعدها شرکت Sun Microsystems در سال 2005 آن را تصاحب کرد. در زیر اطلاعاتی در مورد این پروژه را می‌توانید مشاهده کنید

  • این پروژه با نام F3 (Form Follows Functions) شروع شد و با هدف ارائه واسط‌های غنی تر برای توسعه برنامه‌های GUI توسعه داده شد.
  • Sun Microsystems کمپانی See Beyond را در june سال 2005 تصاحب کرد و نام پروژه F3 را به JavaFX تغییر داد.
  • در سال 2007، JavaFX به صورت رسمی در Java one که یک کنفرانس شبکه جهانی وب می‌باشد و به صورت سالانه برگزار می‌شود،  معرفی شد.
  • در سال 2008، NetBeans با JavaFX به صورت یکپارچه درآمد.در همان سال ابزار توسعه استادارد جاوا برای JavaFX 1.0 منتشر شد.
  • در سال 2009، شرکت اوراکل، Sun Microsystems را تصاحب کرد و در همان سال نسخه بعدی JavaFX (1.2) منتشر شد.
  • در سال 2010، JavaFX 1.3 بیرون آمد و در سال 2011، JavaFX 2.0 منتشر شد.
  • آخرین نسخه JavaFX8 می‌باشد که به عنوان یک بخش جدایی ناپذیر جاوا در 18 مارس 2014منتشر شد.