javaGUI編程中布局控制器的示例分析,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
布局控制器,是用來系統(tǒng)自動(dòng)分配各個(gè)component在window內(nèi)部是怎么排布的;默認(rèn)為FlowLayout,即挨個(gè)排序。FlowLayout是Panel的
instance 1:FlowLayout
import java.awt.*;public class TestLayout { public static void main(String[] args) { Frame f = new Frame(); Button b1 = new Button("ok"); Button b2 = new Button("open"); Button b3 = new Button("change"); f.setBackground(Color.BLUE); f.setBounds(100, 100, 300, 300); f.setLayout(new FlowLayout()); f.setResizable(true); f.add(b1); f.add(b2); f.add(b3); f.setVisible(true); }}
instance 2:BorderLayout
import java.awt.*;public class TestBorderLayout { public static void main(String[] args) { Frame f = new Frame("Border Layout"); Button bn = new Button("Bn"); Button bs = new Button("Bs"); Button be = new Button("Be"); Button bw = new Button("Bw"); Button bc = new Button("Bc"); // f.add(bw,"West");// f.add(be,"East");// f.add(bn,"North");// f.add(bs,"South");// f.add(bc,"Center");// f.setLayout(new BordorLayout()); f.add(bn,BorderLayout.NORTH); f.add(bs,BorderLayout.SOUTH); f.add(bw,BorderLayout.WEST); f.add(be,BorderLayout.EAST); f.add(bc,BorderLayout.CENTER); f.setSize(200, 200); f.setVisible(true); }}
BorderLayout把整個(gè)界面劃分為東西南北中五個(gè)區(qū)域塊;其中BorderLayout.NORTH等是int類型的數(shù)據(jù),為一個(gè)常量。
instance 3:GridLayout
import java.awt.*;public class TestGridLayout { public static void main(String[] args) { Frame f = new Frame(); Button b1 = new Button("b1"); Button b2 = new Button("b2"); Button b3 = new Button("b3"); Button b4 = new Button("b4"); Button b5 = new Button("b5"); Button b6 = new Button("b6"); f.setLayout(new GridLayout(3,2)); f.add(b1); f.add(b2); f.add(b3); f.add(b4); f.add(b5); f.add(b6); f.pack(); f.setSize(200, 200); f.setVisible(true); }}
注:當(dāng)調(diào)用Layout后,其內(nèi)部的component的大小和位置由系統(tǒng)(布局管理器自主分配),而無法認(rèn)為的設(shè)計(jì)。而pack()方法是用來顯示各個(gè)組件的。
instance 4:綜合實(shí)例
import java.awt.*;public class TestedLayout { public static void main(String[] args) { Frame f = new Frame("GUI"); f.setLayout(new GridLayout(2,1)); Panel p1 = new Panel(new BorderLayout()); Panel p2 = new Panel(new BorderLayout()); Panel p11 = new Panel(new GridLayout(2,1)); Panel p22 = new Panel(new GridLayout(2,2)); Button b1 = new Button("button"); Button b2 = new Button("button"); Button b3 = new Button("button"); Button b4 = new Button("button"); Button b5 = new Button("button"); Button b6 = new Button("button"); Button b7 = new Button("button"); Button b8 = new Button("button"); Button b9 = new Button("button"); Button b10 = new Button("button"); p1.add(b1,BorderLayout.WEST); p1.add(b2,BorderLayout.EAST); p2.add(b3,BorderLayout.WEST); p2.add(b4,BorderLayout.EAST); p11.add(b5); p11.add(b6); p22.add(b7); p22.add(b8); p22.add(b9); p22.add(b10); p1.add(p11,BorderLayout.CENTER); p2.add(p22,BorderLayout.CENTER); f.add(p1); f.add(p2); f.setBounds(100, 100, 400, 400); f.setVisible(true); }}
注:一個(gè)new等于創(chuàng)建了一個(gè)button對(duì)象,分配了一個(gè)內(nèi)存空間。即使是完全相同的button即同樣的大小名稱等,其終究還是哪一個(gè),當(dāng)其被反復(fù)添加時(shí),僅僅是相當(dāng)于給其換了位置。其和變量不同,并不是單純的復(fù)制,而是內(nèi)存和對(duì)象的指向問題。
看完上述內(nèi)容,你們掌握javaGUI編程中布局控制器的示例分析的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
本文名稱:javaGUI編程中布局控制器的示例分析-創(chuàng)新互聯(lián)
瀏覽路徑:http://chinadenli.net/article10/ddeigo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、用戶體驗(yàn)、網(wǎng)站設(shè)計(jì)、外貿(mào)建站、面包屑導(dǎo)航、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容