java.swing 容器与面板之间的关系以及正确使用方法
转载:别先生 http://www.cnblogs.com/biehongli/p/5749777.html
package com.swing; import java.awt.Container; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.WindowConstants; /** * 1:常用面板 * 面板也是一个Swing容器,他可以看作为容器容纳其他组件,但它也必须被添加到其他容器中 * Swing中常用的面板包括JPanel面板和JScrollPane面板 * * 2:JPanel面板可以聚集一些组件来布局 * 读者首先应该明白面板也是一种容器,因为它继承了java.awt.Container类 * @author biexiansheng * */ public class JPanelTest extends JFrame{ public JPanelTest(){ Container container=getContentPane();//设置一个容器 //将整个容器设置为2行1列的网格布局 网格布局管理器x,y代表行和列 container.setLayout(new GridLayout(2,1,10,10)); //初始化一个面板,设置1行3列的网格布局 JPanel p1=new JPanel(new GridLayout(1,3,10,10)); JPanel p2=new JPanel(new GridLayout(1,2,10,10)); JPanel p3=new JPanel(new GridLayout(1,2,10,10)); JPanel p4=new JPanel(new GridLayout(2,1,10,10)); //在面板中添加按钮 p1.add(new JButton("1")); p1.add(new JButton("2")); p1.add(new JButton("3")); p2.add(new JButton("4")); p2.add(new JButton("5")); p3.add(new JButton("6")); p3.add(new JButton("7")); p4.add(new JButton("8")); p4.add(new JButton("9")); //最重要的一步,将面板实例添加到容器中 container.add(p1); container.add(p2); container.add(p3); container.add(p4); //将容器外部特性实例化 setTitle("JPanel面板的案例"); setSize(400,250);//设窗体的大小 宽和高 setVisible(true);//设定窗体的可视化 //设置窗体的关闭方式 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { // TODO Auto-generated method stub JPanelTest jt=new JPanelTest(); } }
案例运行结果如下
package com.swing; import java.awt.Container; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.WindowConstants; /** * 1:设置界面时,可能会遇到在一个较小的容器窗体中显示一个较大部分的内容的情况,这时 * 可以使用JScrollPane面板 * * 2:JScrollPane面板是带滚动条的面板,它也是一个面板,但是JScrollPane只能 * 放置一个组件,并且不可以使用布局管理器 * * 3:如果需要在JScrollPane面板中放置多个组件,需要将多个组件放置在JPanel面板上, * 然后将JPanel作为一个整体组件添加到JScrollPane组件上。 * * 4:从本实例可以得到在窗体中创建一个带滚动条的文字编辑器,首先需要初始化编辑器, * 并且在初始化时完成编译器的大小指定,当创建带滚动条的面板时,将编译器加入面板中 * ,最后将带滚动条的编译器放置在容器中即可 * @author biexiansheng * */ public class JScrollPaneTest extends JFrame{ //导入包的快捷键 shift+ctrl+o public JScrollPaneTest(){//定义一个构造方法 Container container=getContentPane();//创建一个容器 //创建文本区域组件 JTextArea ta=new JTextArea(20,50); //创建JScrollPane()面板对象,并将文本域对象添加到面板中 JScrollPane sp=new JScrollPane(ta); //将该面板添加到该容器中 container.add(sp); //设置容器的外部特性 setTitle("带滚动条的文字编辑器");//设置窗口的标题文字 setSize(400,400);//设置窗口的大小 setVisible(true);//设置可视化 //设置窗口的关闭方式 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { // TODO Auto-generated method stub JScrollPaneTest jp=new JScrollPaneTest(); } }
案例运行结果如下