0
点赞
收藏
分享

微信扫一扫

JAVA——45.flowlayout和gridlayout布局


练习一、flowlayout布局(JPanel的默认布局就是流式布局)
FlowLayout:流式布局(顺着放下来)比如按钮一个接一个的放在面板上,当然是居中显示,一行放满了放到下一行

package org.zhaiyujia.test1;

import java.awt.FlowLayout;

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

public class GuiTest1 extends JFrame {
          JButton b1,b2,b3,b4,b5;
          JPanel p;
          public GuiTest1() {
          //FlowLayout:流式布局(顺着放下来)比如按钮一个接一个的放在面板上,当然是居中显示,一行放满了放到下一行
          b1=new JButton("Button1");
          b2=new JButton("Button2");
          b3=new JButton("Button3");
          b4=new JButton("Button4");
          b5=new JButton("Button5");
          p=new JPanel();
          this.getContentPane().add(p);//获取窗口对象的内容面板对象,再添加p
          FlowLayout layout=new FlowLayout();
          p.setLayout(layout);
          p.add(b1);
          p.add(b2);
          p.add(b3);
          p.add(b4);
          p.add(b5);
          this.setSize(300, 300);
          this.setVisible(true);
          this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          }
          public static void main(String[] args) {
              new GuiTest1();
          }
}

JAVA——45.flowlayout和gridlayout布局_java


练习二、GridLayout:网格布局,几行几列的模式

构造方法:GridLayout(int rows, int cols) :创建具有指定行数和列数的网格布局。

package org.zhaiyujia.test1;

import java.awt.GridLayout;

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

public class GuiTest1 extends JFrame {
          JButton b1,b2,b3,b4,b5;
          JPanel p;
          public GuiTest1() {
          //FlowLayout:流式布局(顺着放下来)比如按钮一个接一个的放在面板上,当然是居中显示,一行放满了放到下一行
          b1=new JButton("Button1");
          b2=new JButton("Button2");
          b3=new JButton("Button3");
          b4=new JButton("Button4");
          b5=new JButton("Button5");
          p=new JPanel();
          this.getContentPane().add(p);//获取窗口对象的内容面板对象,再添加p
          //FlowLayout layout=new FlowLayout();
          //p.setLayout(layout);

          //GridLayout:网格布局
          GridLayout layout=new GridLayout(2,3);//两行三列
          p.setLayout(layout);
          p.add(b1);
          p.add(b2);
          p.add(b3);
          p.add(b4);
          p.add(b5);
          this.setSize(300, 300);
          this.setVisible(true);
          this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          }
          public static void main(String[] args) {
              new GuiTest1();
          }
}

JAVA——45.flowlayout和gridlayout布局_居中显示_02


练习三、如何让按钮不充满整个网格空间

setHgap(int hgap) :将组件之间的水平间距设置为指定的值。

setVgap(int vgap) :将组件之间的垂直间距设置为指定值。

package org.zhaiyujia.test1;

import java.awt.GridLayout;

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

public class GuiTest1 extends JFrame {
          JButton b1,b2,b3,b4,b5;
          JPanel p;
          public GuiTest1() {
          //FlowLayout:流式布局(顺着放下来)比如按钮一个接一个的放在面板上,当然是居中显示,一行放满了放到下一行
          b1=new JButton("Button1");
          b2=new JButton("Button2");
          b3=new JButton("Button3");
          b4=new JButton("Button4");
          b5=new JButton("Button5");
          p=new JPanel();
          this.getContentPane().add(p);//获取窗口对象的内容面板对象,再添加p
          //FlowLayout layout=new FlowLayout();
          //p.setLayout(layout);

          //GridLayout:网格布局
          GridLayout layout=new GridLayout(2,3);//两行三列
          p.setLayout(layout);
          layout.setHgap(10);
          layout.setVgap(10);
          p.add(b1);
          p.add(b2);
          p.add(b3);
          p.add(b4);
          p.add(b5);
          this.setSize(300, 300);
          this.setVisible(true);
          this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          }
          public static void main(String[] args) {
              new GuiTest1();
          }
}

JAVA——45.flowlayout和gridlayout布局_流式布局_03


为了更美观,我们可以在面板上叠加面板,就比如第一个面板设置一种布局,比如说两行三列的面板布局,每一个单元格我都放一个面板,然后再在这个子面板上继续设置布局放其他组件。

【java如何设置布局】1.得到布局类的对象2.通过调用容器类的组件setlayout方法将布局对象绑定到这个容器组件3.最后,添加组件即可


举报

相关推荐

0 条评论