GUI 编程 (GridLayout,BorderLayout,将面板作为容器使用)

Posted 老鼠先生qiangji

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GUI 编程 (GridLayout,BorderLayout,将面板作为容器使用)相关的知识,希望对你有一定的参考价值。

GUI 编程【二】

                    ——GridLayout , BorderLayout,将面板作为容器使用:

GridLayout:

package java19;

import java.awt.Container;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

public class ShowGridLayout extends JFrame {

	
	    public ShowGridLayout()  
	    {  
	        Container container=getContentPane();  
	        //定义容器  
	        container.setLayout(new GridLayout(4,3,10,20));  
	        //等价于:  
	        //GridLayout layout=new GridLayout(FlowLayout.LEFT,10,20);  
	        //container.setLayout(layout);  
	        //布局方式  
	        for(int i=1;i<=10;i++)  
	        {  
	            container.add(new JButton("Component"+i));  
	        }  
	    }  
	    public static void main(String[] args) {  
	    	ShowGridLayout frame=new ShowGridLayout();  
	        frame.setTitle("show FlowLayout");  
	        frame.setSize(200,200);  
	        frame.setVisible(true);  
	        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
	    }  


}

效果图

技术分享

BorderLayout:

package java19;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;

public class ShowBorderLayout extends JFrame {

	
	    public ShowBorderLayout()  
	    {  
	        Container container=getContentPane();  
	        //定义容器  ,BorderLayout(x,y),x,y分别为水平和垂直间距
	        container.setLayout(new BorderLayout(5,10));  
	        //等价于:  
	       ; //BorderLayout layout=new BorderLayout(5,10);  
	        //container.setLayout(layout);  
	        //布局方式  
	        container.add(new JButton("East"),BorderLayout.EAST);
	        container.add(new JButton("South"),BorderLayout.SOUTH);
	        container.add(new JButton("West"),BorderLayout.WEST);
	        container.add(new JButton("North"),BorderLayout.NORTH);
	        container.add(new JButton("Center"),BorderLayout.CENTER);
	    }  
	    public static void main(String[] args) {  
	    	ShowBorderLayout frame=new ShowBorderLayout();  
	        frame.setTitle("show FlowLayout");  
	        frame.setSize(200,200);  
	        frame.setVisible(true);  
	        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
	    }  

}

效果

技术分享

将面板作为容器使用:

package java19;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class TestPanels extends JFrame {
       public TestPanels()
       {
    	   //创建容器
    	   Container container=getContentPane();
    	   container.setLayout(new BorderLayout());
    	   //创建面板p1
    	   JPanel p1=new JPanel();
    	   p1.setLayout(new GridLayout(4,3));
    	   //对p1面板添加数据
    	   for(int i=1;i<9;i++)
    	   {
    		   p1.add(new JButton(" "+i));
    	   }
    	   p1.add(new JButton(" "+0));
    	   p1.add(new JButton("start"));
    	   p1.add(new JButton("stop"));
    	   //创建面板p2
    	   JPanel p2=new JPanel();
    	   p2.setLayout(new BorderLayout());
    	   p2.add(new JTextField("time to be display here"),BorderLayout.NORTH);
    	   p2.add(p1,BorderLayout.CENTER);
    	   //添加到容器
    	   container.add(p2,BorderLayout.EAST);
    	   container.add(new Button("Food to be place here"),BorderLayout.CENTER);
    	   
       }
	
	    
	    public static void main(String[] args) {  
	    	TestPanels frame=new TestPanels();  
	        frame.setTitle("the front view of a microwave oven");  
	        frame.setSize(200,200);  
	        frame.setVisible(true);  
	        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
	    }  

}


效果:

技术分享

 

 

 



以上是关于GUI 编程 (GridLayout,BorderLayout,将面板作为容器使用)的主要内容,如果未能解决你的问题,请参考以下文章

java GUI编程(swing)之四swing下拉框,列表框,滚动窗口

Java AWT 图形界面编程LayoutManager 布局管理器 ④ ( GridLayout 网格布局 | GridBagLayout 网格包布局 )

Java AWT 图形界面编程LayoutManager 布局管理器 ④ ( GridLayout 网格布局 | GridBagLayout 网格包布局 )

Java Swing - JPanel 和 GridLayout 边距/填充

gui小计算器的程序写法

以编程方式将视图添加到 Xamarin.Android C# 中的 GridLayout