問(wèn)題一:

創(chuàng)新互聯(lián)主打移動(dòng)網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站改版、網(wǎng)絡(luò)推廣、網(wǎng)站維護(hù)、空間域名、等互聯(lián)網(wǎng)信息服務(wù),為各行業(yè)提供服務(wù)。在技術(shù)實(shí)力的保障下,我們?yōu)榭蛻?hù)承諾穩(wěn)定,放心的服務(wù),根據(jù)網(wǎng)站的內(nèi)容與功能再?zèng)Q定采用什么樣的設(shè)計(jì)。最后,要實(shí)現(xiàn)符合網(wǎng)站需求的內(nèi)容、功能與設(shè)計(jì),我們還會(huì)規(guī)劃穩(wěn)定安全的技術(shù)方案做保障。
自定義的類(lèi)BorderLayout和 java.awt.BorderLayout 這個(gè)類(lèi)同名了 , 需要修改.
比如修改成BorderLayoutDemo
問(wèn)題二:
這些組件的復(fù)制粘貼 ,注意修改啊 ,jb1 ,jb2 ,jb2...jb2 , jb2添加了4次....
this.add(jb1,BorderLayout.CENTER);
this.add(jb2,BorderLayout.NORTH);
this.add(jb2,BorderLayout.EAST);
this.add(jb2,BorderLayout.SOUTH);
this.add(jb2,BorderLayout.WEST);
并且由于你的類(lèi)名也叫BorderLayout ,所以BorderLayout.CENTER..等方位的值都是null.
缺省的狀態(tài)下,都會(huì)放到中間. 最后的覆蓋前面的.所以最后只顯示出1個(gè)jb2.并且居中
修改后的效果圖
修改的代碼
import?java.awt.BorderLayout;
import?javax.swing.JButton;
import?javax.swing.JFrame;
//注意類(lèi)名
public?class?BorderLayoutDemo?extends?JFrame?{
//?定義組件
JButton?jb1,?jb2,?jb3,?jb4,?jb5;
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
BorderLayoutDemo?bl?=?new?BorderLayoutDemo();
}
public?BorderLayoutDemo()?{
//?創(chuàng)建組件
jb1?=?new?JButton("中部");
jb2?=?new?JButton("北部");
jb3?=?new?JButton("東部");
jb4?=?new?JButton("南部");
jb5?=?new?JButton("西部");
//?添加組件
this.add(jb1,?BorderLayout.CENTER);
this.add(jb2,?BorderLayout.NORTH);
this.add(jb3,?BorderLayout.EAST);
this.add(jb4,?BorderLayout.SOUTH);
this.add(jb5,?BorderLayout.WEST);
//?設(shè)置窗口屬性
this.setTitle("邊界布局案例");
this.setSize(500,?400);
this.setLocation(600,?300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
所有的容器均可以調(diào)用父類(lèi)設(shè)置布局管理器方法
setlayout(layoutmanager
mgr)
設(shè)置此容器的布局管理器。
有布局管理器的情況下,設(shè)置組件位置大小是不起作用的。
可以用如下代碼設(shè)置布局管理器為空。
setLayout(null);
但是還是建議找本教程學(xué)習(xí)一下常用的布局管理器。
把JFrame設(shè)置個(gè)BorderLayout,把JPanel放在North里,JPanel就會(huì)自動(dòng)調(diào)整大小了。
至于JPanel里的布局,不知你出于什么特殊理由,單純需要重疊的話(huà)應(yīng)該有合適的布局管理器。另外還有個(gè)思路,改變一下你的設(shè)計(jì)方法,可能就有更簡(jiǎn)單的方案。實(shí)際上很多設(shè)計(jì)中的需求以前就有很多人遇到了并且作出了好的方案,甚至已經(jīng)是標(biāo)準(zhǔn)做法,所以多學(xué)習(xí)參考一下。
import?java.awt.*;
import?javax.swing.*;
public?class?Test23?extends?JFrame?{
private?static?final?long?serialVersionUID?=?7239111811875566198L;
static?JPanel?p1?=?new?JPanel();
static?JPanel?p2?=?new?JPanel();
static?JPanel?p3?=?new?JPanel();
static?JLabel?l1?=?new?JLabel("添加記錄",?JLabel.CENTER);
static?JLabel?l2?=?new?JLabel("姓名",?JLabel.CENTER);
static?JLabel?l3?=?new?JLabel("系別",?JLabel.CENTER);
static?JLabel?l4?=?new?JLabel("專(zhuān)業(yè)",?JLabel.CENTER);
static?JLabel?l5?=?new?JLabel("班級(jí)",?JLabel.CENTER);
static?JTextField?t1?=?new?JTextField();
static?JTextField?t2?=?new?JTextField();
static?JTextField?t3?=?new?JTextField();
static?JTextField?t4?=?new?JTextField();
static?JButton?j1?=?new?JButton("確定");
static?JButton?j2?=?new?JButton("取消");
public?Test23()?{
setTitle("添加記錄");
Container?c?=?getContentPane();
c.setLayout(new?BorderLayout());
p1.setLayout(new?FlowLayout(FlowLayout.CENTER));
p2.setLayout(new?GridLayout(4,?2,?5,?5));
p3.setLayout(new?FlowLayout(FlowLayout.CENTER,?5,?5));
c.add(p1,?BorderLayout.NORTH);
c.add(p2,?BorderLayout.CENTER);
c.add(p3,?BorderLayout.SOUTH);
//標(biāo)題
p1.add(l1);
//姓名
p2.add(l2);
p2.add(t1);
//系別
p2.add(l3);
p2.add(t2);
//專(zhuān)業(yè)
p2.add(l4);
p2.add(t3);
//班級(jí)
p2.add(l5);
p2.add(t4);
//按鈕
p3.add(j1);
p3.add(j2);
this.setSize(200,?200);
this.setLocationRelativeTo(this);/*屏幕居中顯示*/
this.setVisible(true);
}
public?static?void?main(String[]?args)?{
JFrame?frame?=?new?Test23();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
因?yàn)镕rame默認(rèn)的布局是BorderLayout。就是分為東南西北中五個(gè)模塊的布局,如果只在BorderLayout中加一個(gè)Panel就充滿(mǎn)整個(gè)Frame(加兩個(gè)Panel或以上就要設(shè)置位置了,BorderLayout.North這樣)。
如果你加上f.setLayout(null)這個(gè),就是設(shè)置空布局,這樣的話(huà),放在Frame里面的Panel默認(rèn)就是放在右上角,大小就是Panel的大小pan.setSize(100,100);如果Panel的Size跟Frame一樣大就得到之前的效果,當(dāng)然也可以設(shè)置Panel的默認(rèn)位置setLocation就行了。
lz 你好
具體代碼如下:
import?java.awt.*;
import?javax.swing.*;
public?class?Test?extends?JFrame{
private?JPanel?panel_1,panel_2;
private?JButton[]?button_1,button_2;
public?Test(){
super("Test");
button_1?=?new?JButton[3];
button_2?=?new?JButton[3];
panel_1??=?new?JPanel(new?GridLayout(3,2));
panel_2??=?new?JPanel(new?GridLayout(3,2));
for?(int?i?=?0;?i??3;?i++)?{
button_1[i]?=?new?JButton("Panel_1:"+(i+1));
button_2[i]?=?new?JButton("Panel_2:"+(i+4));
panel_1.add(button_1[i]);
panel_2.add(button_2[i]);
}
setLayout(new?FlowLayout(FlowLayout.CENTER,5,30));
getContentPane().add(panel_1);
getContentPane().add(panel_2);
setLocation(400,150);
setSize(200,300);
setVisible(true);
setDefaultCloseOperation(3);
}
public?static?void?main(String[]?args)?{
new?Test();
}
}
希望能幫助你哈
標(biāo)題名稱(chēng):java管理布局代碼 java 布局
本文URL:http://www.chinadenli.net/article22/dooiocc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、做網(wǎng)站、服務(wù)器托管、靜態(tài)網(wǎng)站、虛擬主機(jī)、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
移動(dòng)網(wǎng)站建設(shè)知識(shí)