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

     有几次碰到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的布局位置

		
	}

} 

 

 

你可能感兴趣的:(java)