java图形界面之JPanel面板与布局管理

您所在的位置:网站首页 panel英文名 java图形界面之JPanel面板与布局管理

java图形界面之JPanel面板与布局管理

2024-06-19 13:37| 来源: 网络整理| 查看: 265

文章目录 JPanel面板常见布局管理器流布局管理器(FlowLayout)边界布局管理器(BorderLayout)网格布局管理器(GridLayout)绝对布局

JPanel面板

简介:面板也是一个Swing容器,它可以作为容器容纳其他组件,但它也必须被添加到其他容器中。 情景再现:

JFrame frame=new JFrame("JFrame窗体"); //创建一个窗体 JPanel panel=new JPanel(); //创建面板 JButton button=new JButton("戳这里"); //创建按钮 panel.add(button); //将按钮添加到面板上 frame.add(panel); //将panel面板放到窗体中 //快看面板必须添加到其他容器中 //设置窗口属性 frame.setSize(300,200); //设置窗口大小 frame.setLocation(700,500); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setResizable(false); frame.setVisible(true); //窗体可见 JPanel面板可以聚集一些组件来布局,懂我意思吧(¬‿¬)。 也就是说面板主要应用于布局的时候,当你希望自己设置的窗体布局规整有条理啥的,要想到面板哟👧🏻,还是很常用的。 常见布局管理器

( •̀ .̫ •́ )✧既然刚刚提到了布局那我们就一提到底吧😸

布局管理器就是用来布局界面的(好废话呀) 布局管理器通过布局管理类来对各种组件进行管理,当窗体发生变化时,它会根据新版面来适配窗口大小。 界面各组件摆放的效果会直接影响到读者阅读体验。可以推断它好重要o( ̄▽ ̄)ブ

流布局管理器(FlowLayout)

这是最基本的布局方式。默认情况下,组件在每一行都是居中排列的。但可改变呀。

FlowLayout类中常见的构造方法:

public FlowLayout() public FlowLayout(int alignment) public FlowLayout(int alignment,int horizGap,int vertGap) 其中的alignment参数表示组件在每一行的具体摆放位置,例如:设为0时,每一行的组件将被指定按照左对齐排列。设为1,中间。设为2,右边。 horizGap与vertGap,分别以像素为单位指定组件间的水平与垂直间隔。 import java.awt.*; import javax.swing.*; public class csdn { public void test() { //定义一个test方法 JFrame frame=new JFrame("这是窗体的名字"); //建个窗体 JButton button=new JButton("登录"); //建个按钮 JLabel lable=new JLabel("这是一个JFrame窗口"); //建个Lable标签 JPanel panel=new JPanel(); //来个面板 panel.add(lable); //面板里添加Lable panel.add(button); //面板里添加按钮 frame.getContentPane().add(panel); //将窗体转换为容器再添加上面板 frame.setLayout(new FlowLayout(0));//调用流布局,设为0时,每一行的组件将被指定按照左对齐排列 //设置窗体可见 frame.setVisible(true); } public static void main(String[] args) { // TODO Auto-generated method stub csdn c= new csdn(); c.test(); } } /*最后显示的结果是文字和按钮都在左边 各路读者可以试试设其它数值看看效果呀*/

边界布局管理器(BorderLayout)

在默认不指定窗口布局时,Swing组件的布局模式就是边界布局。回望最初我们容器只添加一个标签组件时,细想,是否组件占据了整个页面,实际上在这个容器中默认使用了边界布局管理器。

边界布局管理器将容器划分为东、南、西、北、中 5个区域,组件可加入到这五个区域中。 容器调用Container类中的add()方法添加组件时可以设置此组件在边界布局管理器中的区域

各成员变量具体含义

BorderLayout类的主要成员变量 成员变量含义BorderLayout.NORTH在容器中添加组件时,组件置于顶端BorderLayout.SOUTH在容器中添加组件时,组件置于底端BorderLayout.EAST在容器中添加组件时,组件置于右端BorderLayout.WEST在容器中添加组件时,组件置于左端BorderLayout.CENTER在容器中添加组件时,组件置于中间开始填充,直至与其他组件边界接触 import java.awt.*; import javax.swing.*; public class csdn { public void test() { //定义一个test方法 JFrame frame=new JFrame("这是窗体的名字"); //设置五个按钮 JButton button1=new JButton("东"); JButton button2=new JButton("南"); JButton button3=new JButton("西"); JButton button4=new JButton("北"); JButton button5=new JButton("中"); //在容器中添加组件 frame.add(button1, BorderLayout.EAST); frame.add(button2, BorderLayout.SOUTH); frame.add(button3, BorderLayout.WEST); frame.add(button4, BorderLayout.NORTH); frame.add(button5, BorderLayout.CENTER); 设置关闭窗体结束应用程序 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400,400); //设置窗体大小 frame.setVisible(true); //可视化窗体 } public static void main(String[] args) { // TODO Auto-generated method stub csdn c= new csdn(); c.test(); } }

网格布局管理器(GridLayout)

网格布局管理器将容器划分为网格,所以组件可以按照行和列进行排列。

此布局中每个组件大小相同 组件会按从左往右,由上而下的加入到网格中 每个组件都会填满网格,改变窗体大小,组件大小也会随之改变。 两种主要构造方法: public GridLayout (int rows , int columns)public GridLayout (int rows , int columns , int horizGap , int vertGap)参数horizGap与vertGap指定网格间的距离,前者指水平距离,后者指垂直距离 import java.awt.*; import javax.swing.*; public class csdn { public void test() { //定义一个test方法 JFrame frame=new JFrame("这是窗体的名字"); //创建5个按钮 JButton button1=new JButton("1"); JButton button2=new JButton("2"); JButton button3=new JButton("3"); JButton button4=new JButton("4"); JButton button5=new JButton("5"); frame.setLayout(new GridLayout(2,3,5,5));//设置2行3列网格 frame.add(button1); frame.add(button2); frame.add(button3); frame.add(button4); frame.add(button5); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭窗体结束应用程序 frame.setSize(400,400); frame.setVisible(true); } public static void main(String[] args) { // TODO Auto-generated method stub csdn c= new csdn(); c.test(); } } /*注意观察 我这个例子设置了5个按钮 最初定义了2行3列的网格 但是由于组件不够 所以只显示6个格子 其中一个是空格 也就是说无论如何都会显示为矩形, 但如果我们将2行3列改为3行3列 我们会发现,界面显示的是3行2列 所以通过测试我们知道网格布局先满足行数再满足列数 网格布局先满足行数再满足列数

绝对布局

绝对布局可硬性指定组件在容器中的位置和大小,可以使用绝对坐标的方式来指定组件的位置。 使用绝对布局的步骤如下:

使用Container.setLayout(null) 取消布局管理器 使用Component.setBounds() 方法设置每个组件的大小位置 import java.awt.*; import javax.swing.*; public class csdn { public void test() { //定义一个test方法 JFrame frame=new JFrame("这是窗体的名字"); //取消布局管理器 frame.setLayout(null); //绝对定位窗体的位置和大小 frame.setBounds(0,0,200,150); //创建两个按钮 JButton button1=new JButton("1"); JButton button2=new JButton("2"); //绝对定位按钮的位置和按钮的大小 button1.setBounds(10, 30, 80, 30); button2.setBounds(60, 70, 100, 20); //将按钮添加到容器中 frame.add(button1); frame.add(button2); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭窗体结束应用程序 //设置窗体大小 frame.setSize(400,400); //设置窗体可见 frame.setVisible(true); } public static void main(String[] args) { // TODO Auto-generated method stub csdn c= new csdn(); c.test(); } }

感谢阅读(❁´◡`❁)


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3