該布局治理器功能強大,界面上組件會根據(jù)界面的縮放進行比例縮放.
其使用起來較為簡單,主要操作函數(shù)如下:
new MutableGridLayout(int cols,int rows,int xgap,int xgap)
該構(gòu)造函數(shù)用來創(chuàng)建一個cols列rows行的界面,其中豎列間隔為xgap,橫行間隔為yGap
這樣將整個界面作為x*y的矩陣方格.
getBox(int col,int row)
此函數(shù)用來說明你要操作的對象現(xiàn)在是(col+1,row+1)這個格子.****注重最左上面的格子
是(0,0)而不是(1,1)這與數(shù)組的表達相通.
split(int row,int col)或split(int row ,int col,int xGap,int yGap)
用來將所選的格子進行切分,其中split(int row,int col)是將操作對象(格子)切割成為cols列rows行
split(int row ,int col,int xGap,int yGap)是將操作對象(格子)切割成為cols列rows行,其中豎列間隔為xgap,橫行間隔為yGap
當然操作是要有對象的所以一般格式為getBox(m,n).split(x,y)
merge(int startX,int startY,int endX,int endY)
用來把多個單元格進行合當然可以合并切割出來的小格子.
其含義為將(startX+1,startY+1)格子與(endX+1,endY+1)格子合并為一個格子
**小技巧:假如你所給的格子是處于對角線上的格子那么將會把四周的格子也合并進來.
例如:merge(0,0,1,1)則(0,0) (0,1) (1,0) (1,1)格子將被合為一個大格子.
setBlank(boolean)
用來指出你的哪個單元格不需要放入組件.
setWidth(int num,double value)或setHeight(int num,double value)
用來指出第num列或第num行的寬度或高度當你的value>1時那么認為你給的是絕對數(shù)值.value<1時
認為你給的是比例數(shù)值.
說明:假如你想得到分割以后的格子上的小格子可以重復使用getBox函數(shù).
好了主要操作函數(shù)就這些(已經(jīng)可以保證你的開發(fā)需求了)其它的功能您自己慢慢使用中就會明白了.
需要注重的是加入組件的順序是按照你所分好的格子從上到下從左到右加入,所以一個界面您可能
有很多種劃分方法來實現(xiàn).可是你的加入組件的順序估計就一種.所以組件的加入順序請您勿必認真對待.
總之,這個布局治理器相當強大,假如您需要使用的話可以去作者blog索取當然,使用時不要忘了他人的版權(quán)聲明!!!
例子程序代碼和效果如下:
import javax.swing.JButton;
import javax.swing.JFrame;
import org.fswan.ui.MutableGridLayout;
/**
* @sampleauthor shaobotao(邵波濤)
* @author Swan Fong(方志文)
* MutableGridLayout布局的樣例程序
*/
public class Test
{
public static void main(String[] args)
{
JFrame jf = new JFrame("Test Layout");
MutableGridLayout ml = new MutableGridLayout(4,4,5,5);
ml.getBox(1,1).split(2,1);
ml.getBox(3,3).split(1,4);
ml.getBox(1,2).getFill();
ml.merge(0,1,1,1);
ml.merge(2,0,2,1);
ml.getBox(3,0).setBlank(true);
ml.merge(1,2,2,3);
ml.getBox(0,2).split(2,5);
ml.getBox(0,3).split(3,1);
ml.getBox(0,2).merge(0,3,1,3);
ml.getBox(0,3).getBox(1,0).setBlank(true);
ml.getBox(0,2).getBox(0,2).setBlank(true);
jf.getContentPane().setLayout(ml);
for (int i = 0; i < 30; i++)
{
jf.getContentPane().add(new JButton("Button"+i));
新聞熱點
疑難解答