您的位置:首页 > 产品设计 > UI/UE

java学习之 论GUI中JPanel的布局设置问题

2013-08-22 11:29 459 查看
有几次碰到JPanel的布局问题,在网上找了一些资料,想记录一下以免以后又碰到再到处找资料。

因为JPanel中的默认布局是FlowLayout,所以要想改变JPanel中的布局,就要在创建JPanel实例时更改他的布局设置,这一步是必要的,如果没有new一个新的布局而直接使用设置另外的布局,那么编译的结果还是默认的布局,而不是你设置的布局。

用例子说明下:

package PanelTest;

/**
* 测试JPanel的布局问题
* 对两个组件JLabel和JButton进行布局
*
*/

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

public class PanelLayoutTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

//try{
frameTest f = new frameTest();
f.setTitle("PanelLayoutTest");
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
f.setVisible(true);

//}
//catch(Exception e){
//	System.out.println(e);
//}

}

}

// JFrame class
class frameTest extends JFrame {

frameTest() {

panelTest p = new panelTest();
this.add(p);
this.pack();
}
}

// Panel class
class panelTest extends JPanel {

private JLabel label;

private JButton button;

panelTest() {

this.setLayout(new BorderLayout()); // 将panel的默认布局flow设置为设置边界布局,括号中是必须的

label=new JLabel();
label.setText("Test");
this.add(label, BorderLayout.SOUTH);//设置按钮的布局位置

button=new JButton("Test");
this.add(button, BorderLayout.NORTH);//设置label的布局位置

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: