PDA

View Full Version : GridLayout



m0rteza
جمعه 12 مهر 1387, 16:45 عصر
من در مفهوم GridLayout مشکل دارم . یعنی ترتیب قرار گرفتن روی این Layout رو نمی دونم
مثال زیر رو ملاحضه کنید.


/*
* Main.java
*
* Created on September 28, 2008, 2:37 PM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package gridlayout;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
*
* @author b.i.p
*/
public class Main {

/** Creates a new instance of Main */
public Main() {
}

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
JFrame f=new JFrame("Testing For GridLayout");
f.setLayout(new GridLayout(4,4));
f.add(new Button("1"));
f.add(new Button("2"));
f.add(new Button("3"));
f.add(new Button("4"));
f.add(new Button("5"));
f.add(new Button("6"));
f.add(new Button("7"));
f.add(new Button("8"));
f.add(new Button("9"));
f.add(new Button("10"));
f.add(new Button("11"));
f.add(new Button("12"));
f.add(new Button("13"));
f.add(new Button("14"));
f.add(new Button("15"));
f.add(new Button("16"));
f.pack();
f.setVisible(true);
}

}


اگر فقط 4 دکمه باشه و بقیه کد رو Comment کنم به صورت شکل 1 است
اگر فقط5 دکمه باشه و بقیه کد رو Comment کنم به صورت شکل 2 است
اگر فقط 7 دکمه باشه و بقیه کد رو Comment کنم به صورت شکل 3است
این اشکال باعث سردر گمی من شده . لطفا بنده رو راهنمایی کنید.

saeed_Z_F
شنبه 13 مهر 1387, 10:01 صبح
سلام

من این حالتی که شما گفتید رو تست کردم . این نکته که شما بهش برخوردید مشکل نیست بلکه الگوریتمی است که GridLayout برای نمایش کامپوننت هاش ازش استفاده میکنه (که به نظر من خیلی بد کار میکنه )
چند تا نکته میگم شاید کارتون راه بیفته .
1- شما در مثالتون چهارتا سطر (پارامتر دوم) در نظر گرفتید که در GridLayoutمعیار اصلی تعداد سطر مگر اینکه مقدار سطر 0 باشه اونوقت معیار ستون است (پارامتر دوم) . وقتی شما مقدار 4 را برای سطر در نظر می گیرید بدین معنی است که می گویید حتما باید کامپوننت ها در چهار سطر قرار گیرند !!!
2- حالا میرسیم به ستون شما مقدار ستون را هر چی بدین فرق نمیکنه !!!
3- حالا میرسیم به طریقه چیدن کامپوننت ها در 4 سطر : هدف اینه که کامپوننت ها جوری چیده بشه که کمترین فاصله خالی بین آنها قرار داشته باشه . اگه عکس حالت 6 تایی رو نگاه کنید با یک مقایسه متوجه میشید .