آموزشبرنامه نویسیجاوامیم تک 18

StackPane : بررسی Layout های جاوا FX (قسمت چهارم)

StackPane : بررسی Layout های جاوا FX
مقدمه :

در ادامه ی مقالات بررسی Layout های جاوا FX ، در این مقاله می خواهیم در مورد StackPane صحبت کنیم. به طور خلاصه این layout معمولا برای قرار دادن متن رو عکس و یا قرار دادن چند شکل روی هم برای تولید شکل پیچیده تر و یک پارچه مناسب است. طبق معمول ما از جزئیات صحبت می کنیم اما به خاطر سپاری تک تک آن ها الزامی نیست. امیدواریم این مقاله به شما در انتخاب layout مناسب کمک کند.

مطالب مرتبط :

StackPane :

این layout نودهای فرزند خود را در یک پشته قرار می دهد. ترتیب نمایش از روی ترتیب لیست فرزندان گرفته می شود. به این صورت که فرزند اندیس صفرم لیست پایین و فرزند اندیس آخر لیست بالا قرار می گیرد.

فاصله ها :

به تنظیم فاصله ی نودها از لبه ی layout اصطلاحا padding می گویند. برای این کار از تابعی به نام setPadding استفاده می کنیم. این فاصله برای همه ی نودهای فرزند layout اعمال می شود.

تراز کردن :

نحوه ی تراز شدن نودهای فرزند بر اساس مقدار تعیین شده در ویژگی alignment است. این ویژگی با تابع setAlignment قابل تنظیم است و مقدار پیش فرض آن Pos.CENTER است.

رنج تغییرات سایز:

StackPane می تواند سایز خود بدون دخالت برنامه نویس تعیین کند. این کار زمانی انجام می شود که مقدار سایز ها ، مقدار پیش فرض USE_COMPUTED_SIZE باشد. در این صورت نحوه ی محاسبه ی سایز های minimum ، maximum و preferred به صورت زیر است :

  1. minimum :
    • عرض : فاصله های چپ و راست + بزرگترین عرض minimum در بین فرزندان
    • طول : فاصله های بالا و پایین + بزرگترین طول minimum در بین فرزندان
  2. preferred :
    •  عرض: فاصله های چپ و راست + بزرگترین عرض preferred در بین فرزندان
    •  طول: فاصله های بالا و پایین + بزرگترین طول preferred در بین فرزندان
  3. maximum :
    • عرض : Double.MAX_VALUE
    •  طول : Double.MAX_VALUE

نکته1 : این مقادیر توسط برنامه نویس با فراخوانی توابع setter مربوطه نیز قابل تنظیم است.
نکته2 : Double.MAX_VALUE  به معنی بدون محدودیت است. اگر سایز maximum بدون محدودیت باشد، تمام فضایی که نود پدر در اختیارش قرار می دهد را پر می کند.

سایز فرزندان :

StackPane تلاش می کند با تغییر اندازه نودهای فرزند منطقه ی محتوای خود را پر کند. مگر زمانی که سایز نود قابل تغییر نباشد ( resizable نباشد ) یا برای آن سایز maximum تعریف کرده باشند تا از یک حدی بزرگتر نشود.

از طرفی StackPane محتوای درون خود را نمی برد. زمانی که minimum سایز نود فرزند در StackPane منطبق نشود، از مرزهای StackPane بیرون می زند.

مدل دهی :

پس زمینه  و حاشیه (border) در این layout،  با استفاده از CSS قابل طراحی هستند.

حالت های خاص :

در StackPane دو قید وجود دارد که می توان آن ها را به یک نود به صورت خاص اعمال کرد.

  • margin : امکان تعریف فضای خالی اطراف یک نود خاص
  • alignment :  تراز کردن جداگانه یک نود درون StackPane
سازنده :

در شکل زیر سازنده های StackPane را آورده ایم. دقت کنید می توان نودهای فرزند را به عنوان ورودی به سازنده داد.

توابع setter :

در این بخش توابع setter که برای تعیین ویژگی های گفته شده لازم هستند، آورده شده است. برای درک بهتر کاربرد آن ها دنبال کردن بخش “کد و تحلیل ” به شدت توصیه می شود.

کد و تحلیل :

نتیجه :

در شکل زیر خروجی برنامه را می بینید. نکاتی که باید توجه کنید :

  • تغییر سایز button  و پر کردن فضای StackPane با وجود اینکه مقدار prefferd  سایز آن کوچکتر از اندازه ی StackPane است.
  • تغییر نکردن سایز rectangle چون این نود اصلا resizable نیست.
  • ترتیب قرار گیری نود ها با ترتیب ورود آن ها به سازنده یکی است. اندیس صفر به عنوان پایین ترین نود قرار گرفته است.

ادامه:

1 دیدگاه

  1. مرسی از کمکتون و خیلی سایت زیبایی دارید مخصوصا اون آیکون که اول سایت نیست اسکرول میشه میاد خیلی باحاله :0

ارسال پاسخ