PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : بررسي مدل لايه بندي FlowLayout



TAHA
10-02-2009, 07:25 AM
یکی از ساده ترين مدل هاي چيدمان كامپوننت ها در فريم، مدل لایه بندی FlowLayout مي باشد که به صورت پیش فرض برای کانتینرهای JPanel مورد استفاده قرار می گیرد. این مدل زیر کلاسی از AWT است. براي شروع كار بهتر است ابتدا برنامه FlowLayout1.java را اجرا بگیرید. خروجي اين برنامه بصورت زير مي باشد.

http://pnu-club.com/../pic/46-1.JPG


************************************

1. ایجاد مدل FlowLayout
متن برنامه فوق بصورت زير مي باشد.




import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class FlowLayout1 {
Container container;
public FlowLayout1(){
JFrame frame = new JFrame("FlowLayout1");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
container = frame.getContentPane();
container.setLayout(new FlowLayout());
container.setComponentOrientation(ComponentOrienta tion.RIGHT_TO_LEFT);

frame.add(new JButton("Button 1"));
frame.add(new JButton("Button 2"));
frame.add(new JButton("Button 3"));
frame.add(new JButton("Long-Named Button 4"));
frame.add(new JButton("5"));

frame.setSize(580,80);
frame.setVisible(true);
}
public static void main(String[] args) {
new FlowLayout1();
}
}


همانطور كه در كد بالا مشاهده مي نماييد، فريم برنامه توسط متد setLayout و مدل FlowLayout لايه بندي شده است.


container.setLayout(new FlowLayout());
اين عبارت را بصورت زير نيز مي توان نوشت:



FlowLayout flowLayout =new FlowLayout();

container.setLayout(flowLayout);

************************************
2. بعضی از خصوصیات FlowLayout
این مدل لایه بندیکامپوننت های مختلف را در حالت پيش فرض، به ترتیب از چپ به راست و در صورت انتخاب كاربر از راست به چپ و تا جائیکه کانتینر فریم فضا داشته باشد، قرار می دهد. در غیر این صورت در خط بعدی کامپوننت ها را قرار می دهد. این مدل لایه بندی کامپوننت ها را بر اساس Preferred Size آنها در فریم قرار می دهد.
اگر پنجره برنامه بالا را پس از اجرا تغيير اندازه دهيم، هر تعداد از كامپوننت ها كه در يك خط جا نشوند به خط بعد منتقل مي شوند.



http://pnu-club.com/../pic/46-2.JPG

همانطور كه گفته شد در اين مدل مي توان ترتيب چينش كامپوننت ها را در فريم تعيين نمود. براي انجام اين كار بر اساس ترتيب مورد نظر يكي از دو عبارت زير را به برنامه اضافه مي نماييم.


container.setComponentOrientation(ComponentOrienta tion.RIGHT_TO_LEFT);

container.setComponentOrientation(ComponentOrienta tion.LEFT_TO_RIGHT);

موضوع قابل بحث در اين مدل آن است كه مي توان بين كامپوننت ها بر اساس نياز فاصله ايجاد نمود. همچنين موقعيت چينش كامپوننت ها را نيز مي توان تعيين نمود. به عبارت زير دقت نماييد:


container.setLayout(new FlowLayout(FlowLayout.CENTER,20,10));
همان طور که می بینید، آرگومان اول متد سازنده به مکان کامپوننت ها در کانتینر، آرگومان دوم به فاصله افقی میان کامپوننت ها و آرگمان سوم هم به فاصله عمودی میان کامپوننت ها اشاره دارد. اگر عبارت فوق را به برنامه قبل اضافه نماييد، خروجي برنامه بصورت زير خواهد شد.


http://pnu-club.com/../pic/46-3.JPG


براي انجام عمل قبل بصورت زير نيز مي توان عمل نمود:



FlowLayout flow = new FlowLayout();
flow.setHgap(20);
flow.setVgap(10);
flow.setAlignment(FlowLayout.CENTER);
container.setLayout(flow);