精华内容
下载资源
问答
  • 最最最实用的5种Java布局方式

    千次阅读 2020-12-17 08:01:50
    java布局方式非常常用,以下介绍5种常用的布局方式。 1.FlowLayout(流式布局) import java.awt.Container; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; /** 将组件已...

    java的布局方式非常常用,以下介绍5种常用的布局方式。
    1.FlowLayout(流式布局)
    import java.awt.Container;
    import java.awt.FlowLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    /**

    • 将组件已加入顺序从左到右排序,一行
    • 排满就会去第二行。
    • 每行组件剧中排列

    */
    public class FlowLayoutDemo {

    private JFrame frame;
    private JButton button1,button2,button3,button4,button5;
    
    public static void main(String[] args) {
        FlowLayoutDemo fd = new FlowLayoutDemo();
        fd.go();
    }
    
    private void go() {
        frame = new JFrame("flowlayout");
        Container contentPane = frame.getContentPane();
        contentPane.setLayout(new FlowLayout());
        button1 = new JButton("OK");
        button2 = new JButton("OPEN");
        button3 = new JButton("CLOSE");
        button4 = new JButton("aaa");
        button5 = new JButton("CLOSEccc");
        contentPane.add(button1);
        contentPane.add(button2);
        contentPane.add(button3);
        contentPane.add(button4);
        contentPane.add(button5);
        frame.setSize(300,200);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    

    }12345678910111213141516171819202122232425262728293031323334353637383940运行结果如下 在这里插入图片描述

    2.BorderLayout(边界布局)
    import java.awt.BorderLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;

    /**

    • 由BorderLayout管理的容器被划分为5个区域
    • North south west east center

    */
    public class BorderLayoutDemo {
    private JFrame frame;
    private JButton be,bw,bn,bs,bc;

    public static void main(String[] args) {
        BorderLayoutDemo bd = new BorderLayoutDemo();
        bd.go();
    }
    
    private void go() {
    
        frame = new JFrame("BorderLayoutDemo");
        be = new JButton("east");
        bw = new JButton("west");
        bn = new JButton("north");
        bs = new JButton("south");
        bc = new JButton("center");
        frame.getContentPane().add(be,BorderLayout.EAST);
        frame.getContentPane().add(bw,BorderLayout.WEST);
        frame.getContentPane().add(bn,BorderLayout.NORTH);
        frame.getContentPane().add(bs,BorderLayout.SOUTH);
        frame.getContentPane().add(bc,BorderLayout.CENTER);
    
        frame.setSize(300, 200);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
    }
    

    }
    12345678910111213141516171819202122232425262728293031323334353637383940运行结果如下
    在这里插入图片描述

    3.GridLayout(网格布局)
    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.GridLayout;

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

    /**

    • 将容器分为若干行和列,组件依次放入其中
    • 每个组件占据一格。

    */
    public class GridLayoutDemo {
    public static void main(String[] args) {
    MyWindow that = new MyWindow();
    that.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    }

    @SuppressWarnings(“serial”)
    class MyWindow extends JFrame {
    private JButton b1,b2,b3,b4,b5,b6;
    public MyWindow() {
    setTitle(“grid”);
    Container contentPane = getContentPane();
    contentPane.setPreferredSize(new Dimension(400,300));
    contentPane.setLayout(new GridLayout(3,2));//3行2列
    b1 =new JButton(“b1”);
    b2 =new JButton(“b2”);
    b3 =new JButton(“b3”);
    b4 =new JButton(“b4”);
    b5 =new JButton(“b5”);
    b6 =new JButton(“b6”);
    contentPane.add(b1);
    contentPane.add(b2);
    contentPane.add(b3);
    contentPane.add(b4);
    contentPane.add(b5);
    contentPane.add(b6);
    pack();
    setVisible(true);
    }
    }1234567891011121314151617181920212223242526272829303132333435363738394041424344运行结果如下
    在这里插入图片描述

    4.BoxLayout(盒式布局)
    import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.FlowLayout;
    import java.awt.Label;

    import javax.swing.BoxLayout;
    import javax.swing.JFrame;
    import javax.swing.JPanel;

    /**

    • 将容器中的组件水平或者竖直排成一行或一列

    */
    public class BoxLayoutDemo {

    private JFrame jFrame;
    private JPanel jPanel,jPanel2;
    public static void main(String[] args) {
        BoxLayoutDemo boxLayoutDemo = new BoxLayoutDemo();
        boxLayoutDemo.go();
    
    }
    private void go () {
        jFrame = new JFrame("box lay");
        Container contentPane = jFrame.getContentPane();
        jPanel = new JPanel();
        jPanel.setLayout(new BoxLayout(jPanel, BoxLayout.Y_AXIS));
        jPanel.add(new Label("1"));
        jPanel.add(new Label("2"));
        jPanel.add(new Label("3"));
        contentPane.add(jPanel, BoxLayout.X_AXIS);
        jPanel2 = new JPanel();
        jPanel2.setLayout(new BoxLayout(jPanel2, BoxLayout.X_AXIS));
        jPanel2.add(new Label("yes"));
        jPanel2.add(new Label("no"));
        jPanel2.add(new Label("cancel"));
        //contentPane.add(jPanel2,BorderLayout.SOUTH);
        //contentPane.add(jPanel2,FlowLayout.CENTER);
        jFrame.pack();
        jFrame.setVisible(true);
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    

    }
    123456789101112131415161718192021222324252627282930313233343536373839404142434445运行结果如下
    在这里插入图片描述

    5.CradLayout(卡片布局)
    import java.awt.BorderLayout;
    import java.awt.CardLayout;
    import java.awt.Container;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

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

    /**

    • 卡片布局 每时每刻只显示一张

    */
    @SuppressWarnings(“serial”)
    public class CardlayoutDemo extends JFrame {

    public static void main(String[] args) {
        new CardlayoutDemo();
    }
    
    public CardlayoutDemo() {
          this.setTitle("Cardlayout");
          this.setSize(400, 400);
          this.setLocationRelativeTo(null);
          this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          Container c = this.getContentPane();
          JButton jbtn1 = new JButton("上一个");
          c.add(jbtn1, BorderLayout.NORTH);
          final JPanel mainJPanel = new JPanel(); 
          //匿名内部类只能访问final变量
          final CardLayout cardLayout = new CardLayout(); 
          mainJPanel.setLayout(cardLayout);
          mainJPanel.add(new JLabel("第1张"), "one"); 
          mainJPanel.add(new JLabel("第2张"), "two");
          mainJPanel.add(new JLabel("第3张"), "three");
          mainJPanel.add(new JLabel("第4张"), "four");
          c.add(mainJPanel, BorderLayout.CENTER); 
          JButton jbtn2 = new JButton("下一个"); 
          c.add(jbtn2, BorderLayout.SOUTH); 
    
          jbtn1.addActionListener(new ActionListener() {  
           public void actionPerformed(ActionEvent e) {  
            cardLayout.previous(mainJPanel);
           }  
          });  
          jbtn2.addActionListener(new ActionListener() {  
           public void actionPerformed(ActionEvent e) {  
            cardLayout.next(mainJPanel);
           }  
          });  
          //cardLayout.show(mainJPanel, "three");
          this.setVisible(true);
    }
    

    }
    运行结果如下
    在这里插入图片描述

    展开全文
  • java布局

    千次阅读 多人点赞 2017-04-17 23:03:26
    原文地址:java布局管理器总结作者:技术羊 之前在使用的过程中一直对java中swing的布局管理器感到很困惑,以下是在网上找到的一篇文章。其中我重点关注了一下gridbaglayout。写的比较详尽: ...
    原文地址:java布局管理器总结作者:技术羊

    之前在使用的过程中一直对java中swing的布局管理器感到很困惑,以下是在网上找到的一篇文章。其中我重点关注了一下gridbaglayout。写的比较详尽:

    1. BorderLayout

    2. FlowLayout

    3. GridLayout

    4. GridBagLayout

    5. CardLayout

    6. BoxLayout


    1.BorderLayout

    java.lang.Object

    --java.awt.BorderLayout

    将版面划分成东、西、南、北、中五个区域,将添加的组件按指定位置放置。

    •     BorderLayout.EAST
    •     BorderLayout.WEST
    •     BorderLayout.SOUTH
    •     BorderLayout.NORTH
    •     BorderLayout.CENTER

    构造函数:

    BorderLayout()

    建立组件间无间距的BorderLayout

    BorderLayout(int hgap,int vgap)

    建立组件间水平间距为hgap,垂直间距为vgap的BorderLayout

    例一:

    import java.awt.BorderLayout;  
    import javax.swing.JFrame;  
    import javax.swing.JButton;  
      
    public class BorderLayoutDemo {  
      
        public static void main(String[] args) {  
            //建立一个JFrame,JFrame的默认LayoutManager为BorderLayout   
            JFrame f=new JFrame("BorderLayout");  
            JButton btn=new JButton("BorderLayout.NORTH");  
            f.add(btn,BorderLayout.NORTH);  
            btn=new JButton("BorderLayout.SOUTH");  
            f.add(btn,BorderLayout.SOUTH);  
            btn=new JButton("BorderLayout.EAST");  
            f.add(btn,BorderLayout.EAST);  
            btn=new JButton("BorderLayout.West");  
            f.add(btn,BorderLayout.WEST);  
            btn=new JButton("BorderLayout.CENTER");  
            f.add(btn,BorderLayout.CENTER);  
            f.pack();  
            f.setVisible(true);  
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        }  
      
    }  

    运行结果:

    BorderLayout

    在上例代码的第13,14行之间插入以下代码

     

    f.setLayout(new BorderLayout(10,10));

    运行结果:

    BorderLayout

     


     

    2.FlowLayout

    java.lang.Object

    --java.awt.FlowLayout

    组件按从左到右而后从上到下的顺序依次排列,一行不能放完则折到下一行。

     

    构造函数

    FlowLayout()

    建立一个默认为居中对齐,组件彼此有5单位的水平与垂直间距的FlowLayout

    FlowLayout(int align)

    建立一个可设置排列方式且组件彼此有5单位的水平与垂直间距的FlowLayout

    FlowLayout(int align,int hgap,int vgap)

    建立一个可设置排列方式与组件间距的FlowLayout

    例二:

    import java.awt.FlowLayout;  
    import javax.swing.JFrame;  
    import javax.swing.JButton;  
      
      
    public class FlowLayoutDemo {  
      
        public static void main(String[] args) {  
            JFrame f=new JFrame("FlowLayout");  
            f.setLayout(new FlowLayout());  
            for(int i=0;i<7;i++){  
                JButton btn=new JButton("Button"+i);  
                f.add(btn);  
            }  
            f.setSize(300,150);  
            f.setVisible(true);  
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        }  
      
    }  

    运行结果:

    FlowLayout

     


     

    3.GridLayout

     

    java.lang.Object

    --java.awt.GridLayout

    矩形网格形式对容器的组件进行布置

     

    构造函数

    GridLayout()

    建立一个默认为一行一列的GridLayout

    GridLayout(int rows,int cols)

    建立一个指定行(rows)和列(cols)的GridLayout

    GridLayout(int rows,int cols,int hgap,int vgap)

    建立一个指定行(rows)和列(cols),且组件间水平间距为hgap、垂直间距为vgap的GridLayout

    例三:

    import java.awt.GridLayout;  
    import javax.swing.JFrame;  
    import javax.swing.JButton;  
      
      
    public class GridLayoutDemo {  
      
        public static void main(String[] args) {  
            JFrame f=new JFrame("GridLayout");  
            //设置f的布局管理器为3行3列的GridLayout,组件间水平与垂直间距为5   
            f.setLayout(new GridLayout(3,3,5,5));  
            for(int i=1;i<10;i++){  
                JButton btn=new JButton(String.valueOf(i));  
                f.add(btn);  
            }  
            f.pack();  
            f.setVisible(true);  
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        }  
      
    }  

    运行结果:

    GridLayout2

     


     

    4.GridBagLayout

     

    java.lang.Object

     --java.awt.GridBagLayout

    GridBagLayout以表格形式布置容器内的组件,将每个组件放置在每个单元格内,而一个单元格可以跨越多个单元格合并成一个单元格,即多个单元格可以组合成一个单元格,从而实现组件的自由布局。

    构造函数

    GridBagLayout()

    建立一个默认的GridBagLayout

    每一个单元格都有各自的属性,而这些属性由GridBagConstrainsts类的成员变量来定义,且GridBagConstriaints中的所有成员变量都是public的。

    java.lang.Object

    --java.awt.GridBagConstratints

    构造函数:

    GridBagConstraints()

    建立一个默认的GridBagConstraints

    GridBagConstraints(intgridx,int gridy,int gridwidth,int gridheight,double weightx,double weighty,int anchor,int fill,Insets insets,int ipadx,int ipady)

    建立一个指定其参数值的GridBagConstraints

    GridBagConstraints的成员变量:

    • int gridx
    • int gridy
    • int gridwidth
    • int gridheight
    • double weightx
    • double weighty
    • int anchor
    • int fill
    • Insets insets
    • int ipadx
    • int ipady

    gridx,gridy:设置组件所处行与列的起始坐标。例如gridx=0,gridy=0表示将组件放置在0行0列单元格内。

    gridwidth,gridheight:设置组件横向与纵向的单元格跨越个数。

    可以通过GridBagConstraints的RELETIVE,和REMAINDER来进行指定,它的用法是:

    当把gridx值设置为GridBagConstriants.RELETIVE时,所添加的组件将被放置在前一个组件的右侧。同理,对gridy 值设置为GridBagConstraints.RELETIVE时,所添加的组件将被放置在前一个组件的下方,(这是一种根据前一个组件而决定当前组 件的相对放置方式)

    对gridweight和gridheight也可以应用GridBagConstraints的REMAINDER方式,创建的组件会从创建的起点位置 开始一直延伸到容器所能允许的界限为止。该功能使得你可以创建跨越某些行或列的组件,从而改变相应方向上组件的数目,即使其后在布局的其他地方添加额外的组件也是如此。

    weightx,weighty:设置窗口变大时的缩放比例。

    anchor:设置组件在单元格中的对齐方式。由以下常量来定义

    GridBagConstraints.CENTER

    GridBagConstraints.EAST

    GridBagConstraints.WEST

    GridBagConstraints.SOUTH

    GridBagConstraints.NORTH

    GridBagConstraints.SOUTHEAST

    GrisBagConstraints.SOUTHWEST

    GridBagConstraints.NORTHEAST

    GridBagConstraints.NORTHWEST

    fill:当某个组件未能填满单元格时,可由此属性设置横向、纵向或双向填满。由以下常量来定义

    GridBagConstraints.NONE

    GridBagConstraints.HORIZONTAL

    GridBagConstraints.VERTICAL

    GridBagConstraints.BOTH

    insets:设置单元格的间距。

    java.lang.Object

    --java.awt.Insets

    Insets(int top,int left,int bottom,int right)

    ipadx,ipady:将单元格内的组件的最小尺寸横向或纵向扩大。若一个组件的尺寸为30*10像素,ipadx=2,ipady=3,则单元格内的组件最小尺寸为34*16像素

    例四:

    import java.awt.GridBagLayout;  
    import java.awt.GridBagConstraints;  
    import java.awt.Insets;  
    import javax.swing.JFrame;  
    import javax.swing.JButton;  
      
      
    public class GridBagLayoutDemo {  
      
        public static void main(String[] args) {  
            JFrame f=new JFrame("GridBagLayout");  
            f.setLayout(new GridBagLayout());  
            JButton btn=new JButton("first");  
            GridBagConstraints gbc=new GridBagConstraints();  
            //设定第一个单元格的属性值   
            gbc.gridx=0;  
            gbc.gridy=0;  
            gbc.gridwidth=1;  
            gbc.gridheight=1;  
            gbc.weightx=0;  
            gbc.weighty=0;  
            gbc.anchor=GridBagConstraints.NORTHWEST;  
            gbc.fill=GridBagConstraints.NONE;  
            gbc.insets=new Insets(0,0,0,0);  
            gbc.ipadx=0;  
            gbc.ipady=0;  
            f.add(btn,gbc);  
      
            //设定第二个单元格属性值   
            gbc.gridx=1;  
            gbc.gridy=0;  
            gbc.gridwidth=GridBagConstraints.REMAINDER;  
            gbc.gridheight=1;  
            gbc.weightx=1;  
            gbc.weighty=0;  
            gbc.anchor=GridBagConstraints.CENTER;  
            gbc.fill=GridBagConstraints.HORIZONTAL;  
            gbc.insets=new Insets(5,5,5,5);  
            gbc.ipadx=0;  
            gbc.ipady=0;  
            btn=new JButton("second");  
            f.add(btn,gbc);  
      
            //设定第三个单元格属性值   
            gbc.gridx=0;  
            gbc.gridy=1;  
            gbc.gridwidth=1;  
            gbc.gridheight=GridBagConstraints.REMAINDER;  
            gbc.weightx=0;  
            gbc.weighty=1;  
            gbc.anchor=GridBagConstraints.CENTER;  
            gbc.fill=GridBagConstraints.VERTICAL;  
            gbc.insets=new Insets(0,0,0,0);  
            gbc.ipadx=10;  
            gbc.ipady=10;  
            btn=new JButton("three");  
            f.add(btn,gbc);  
            f.pack();  
            f.setVisible(true);  
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        }  
      
    } 

    运行结果:

     

    GridBagLayout

    将窗口变大后的效果:

     

    GridBagLayout2

     


    5.CardLayout

     

    java.lang.Object

    --java.awt.CardLayout

    以层叠的方式布置组件,如同很多张卡片叠在一起,从而只能看到最上面的那一张卡片。

    构造函数

    CardLayout()

    建立一个无间距的CardLayout

    CardLayout(int hgap,int vgap)

    建立一个水平间距为hgap、垂直间距为vgap的CardLayout

    例五:

    import java.awt.BorderLayout;  
    import java.awt.CardLayout;  
    import java.awt.event.ActionEvent;  
    import java.awt.event.ActionListener;  
    import javax.swing.JFrame;  
    import javax.swing.JPanel;  
    import javax.swing.JLabel;  
    import javax.swing.JButton;  
      
      
    public class CardLayoutDemo {  
      
        private static JPanel p;  
        public static void main(String[] args) {  
            JFrame f=new JFrame("CardLayout");  
            p=new JPanel();  
            //将JPanel p的LayoutManager设置为CardLayout   
            p.setLayout(new CardLayout());  
      
            //新建两个JPanel   
            JPanel p1=new JPanel();  
            JPanel p2=new JPanel();  
            JLabel lb=new JLabel("first panel");  
            p1.add(lb);  
            lb=new JLabel("second panel");  
            p2.add(lb);  
      
            //将新建的两个JPanel p1,p2添加到p中   
            p.add(p1,"frist");  
            p.add(p2,"second");  
      
            //设置默认显示first所对应的JPanel p1   
            ((CardLayout)p.getLayout()).show(p, "frist");  
      
            JButton cbtn=new JButton("Change");  
            cbtn.addActionListener(new ActionListener(){  
      
                public void actionPerformed(ActionEvent e) {  
                    //当按下Change按钮时,显示second 对应的JPanel p2   
                    ((CardLayout)p.getLayout()).show(p, "second");  
                }  
                  
            });  
            f.add(cbtn,BorderLayout.NORTH);  
            f.add(p,BorderLayout.CENTER);  
            f.setSize(400,150);  
            f.setVisible(true);  
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        }  
      
    }   

    运行结果:

    CardLayout1

    按下Change按钮后的结果:

     

    CardLayout2


    6.BoxLayout

     

    java.lang.Object

    --javax.swing.BoxLayout

    以嵌套式盒子来管里容器的布局,通过将组件放入水平或垂直形盒子以多层嵌套的方式进行布局。

    构造函数

    BoxLayout(Container target,int axis)

    建立一个水平或垂直的BoxLayout,BoxLayout提供两个常数X_AXIS和Y_AXIS来表示水平或垂直排列。

    说到BoxLayout,就不得不提到Box这个Container,Box这个Container默认的Layout为BoxLayout,而它只能使用这个Layout,否则编译时会有Error产生。

    java.lang.Object

    --javax.swing.Box

    Box有水平的和垂直的两种形式。

    构造函数

    Box(int axis)

    建立一个Box Container(容器),并指定组件的排列方式,通过使用BoxLayout提供的两个常数X_AXIS和Y_AXIS来指定。

     

    方法

    public static Box createHorizontalBox()

    构造一个水平排列的Box组件。

    import javax.swing.Box;  
    import javax.swing.JFrame;  
    import javax.swing.JButton;  
      
      
    public class BoxLayoutDemo {  
      
        public static void main(String[] args) {  
            JFrame f=new JFrame("BoxLayout");  
            //创建水平Box组件   
            Box box=Box.createHorizontalBox();  
            JButton btnA=new JButton("A");  
            JButton btnB=new JButton("B");  
            box.add(btnA);  
            box.add(btnB);  
            f.add(box);  
            f.pack();  
            f.setVisible(true);  
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        }  
          
    }   

    运行结果:

    BoxLayout1

    public static Component createHorizontalGlue()

    构造一个Glue组件可向水平方向延伸。

    在上例17,18行间插入以下代码

    box.add(Box.createHorizontalGlue());  

    运行结果:

    BoxLayout2

    将窗口变大后的效果:

     BoxLayout3

    public static Component createHorizontalStrut(int width)

    构造一个水平指定宽度的Strut组件。

    将上例代码改成以下代码

    box.add(Box.createHorizontalStrut(50));  

    运行结果:

    BoxLayout4

    public static Component createRigidArea(Dimension d)

    构造一个指定长宽的二维Rigid组件。

    将上例代码改成以下代码

    box.add(Box.createRigidArea(new Dimension(50,50)));  

    运行结果:

    BoxLayout5

    public static Box createVerticalBox()

    构造一个垂直排列的Box组件。

    public static Component createVerticalGlue()

    构造一个垂直的Glue组件。

    public static Component createVerticalStrut(int height)

    构造一个垂直的Strut组件。

    public static Component createGlue()

    构造一个Glue组件可向水平方向延伸。

    Box.Fillter

    Fillter是Box的inner class(内部类),它的功能与Rigid相似,都可以指定长宽的大小限制,且Fillter可以指定最大、较佳、最小的长宽大小。

    展开全文
  • 本文通过代码示例给大家详细讲解了java中Swing五种常见的布局方式,以及相关注意知识点,有兴趣的朋友参考学习下。
  • java布局——流式布局

    千次阅读 2016-07-13 13:44:54
    * 流式布局实现 * */ package swing; import java.awt.*; import javax.swing.*; public class Test3 extends JFrame{ JButton jb1,jb2,jb3,jb4,jb5,jb6; public static void main(String[] args) { // TODO...
    <span style="font-size:24px;">/*
     * 流式布局实现
     * */
    package swing;
    import java.awt.*;
    import javax.swing.*;
    
    public class Test3 extends JFrame{
    
    	JButton jb1,jb2,jb3,jb4,jb5,jb6;
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Test3 test3=new Test3();
    	}
    	public Test3()
    	{
    		jb1=new JButton("按钮1");
    		jb2=new JButton("按钮2");
    		jb3=new JButton("按钮3");
    		jb4=new JButton("按钮4");
    		jb5=new JButton("按钮5");
    		jb6=new JButton("按钮6");
    		
    		this.add(jb1);
    		this.add(jb2);
    		this.add(jb3);
    		this.add(jb4);
    		this.add(jb5);
    		this.add(jb6);
    		
    		//设置布局管理器
    		this.setLayout(new FlowLayout(FlowLayout.LEFT));//默认居中对齐
    		//不使用布局管理器
    		//this.setLayout(null);
    		
    		this.setTitle("流式布局");
    		this.setSize(200, 200);
    		//禁止改变窗体大小
    		this.setResizable(false);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		
    		this.setVisible(true);
    	}
    
    }
    </span>

    运行效果:


    展开全文
  • java布局——网格布局

    千次阅读 2016-07-13 13:46:15
    * 网格布局实现 * */ package swing; import java.awt.*; import javax.swing.*; public class Test4 extends JFrame{ int size=9; JButton jbs[] =new JButton[size]; public static void main(String[] ...
    /*
     * 网格布局实现
     * */
    package swing;
    import java.awt.*;
    import javax.swing.*;
    
    public class Test4 extends JFrame{
    
    	int size=9;
    	JButton jbs[] =new JButton[size];
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Test4 test4=new Test4();
    	}
    	
    	public Test4()
    	{
    		for(int i=0;i<size;i++)
    		{
    			jbs[i]=new JButton(String.valueOf("按钮"+(i+1)));
    		}
    		
    		//设置为网络布局
    		this.setLayout(new GridLayout(3,3,10,10));
    		
    		//添加组件
    		for(int i=0;i<size;i++)
    		{
    			this.add(jbs[i]);
    		}
    		
    		this.setSize(300, 200);
    		this.setTitle("网格布局实现");
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setVisible(true);
    	}
    
    }
    

    运行效果:


    展开全文
  • java布局——边界布局

    千次阅读 2016-07-13 13:41:58
    * 边界布局实现 * */ package swing; import java.awt.*; import javax.swing.*; public class Test2 extends JFrame{ JButton jb1,jb2,jb3,jb4,jb5; public static void main(String[] args) { // TODO ...
  • Java布局管理器

    千次阅读 2018-10-21 02:17:11
    Java组件布局布局管理器对象来管理;布局管理器会确定组件打大小和位置;在容器发生变化是做出动态调整。 二、布局管理器的分类  FlowLayout:流式布局管理器  BorderLayout:边界布局管理器  GridLayout:...
  • java布局FlowLayout

    千次阅读 2016-03-18 14:34:48
    FlowLayout 布局应用代码段举例 1)设置FlowLayout 布局 JFrame fr=new JFrame( ); FlowLayout flow=new FlowLayout( ); fr.setLayout(flow); 上面的语句可以简化成: fr.setLayout(new FlowLayout())...
  • Java布局管理器组件

    千次阅读 多人点赞 2016-05-09 19:25:26
    Java布局管理器组件所谓布局管理器,就是为容器内的组件提供若干布局策略,每个容器都拥有某种默认布局管理器,用于负责其内部组件的排列。目前开发中,常用的布局管理器有BorderKayout、FlowLayout、GridLayout、...
  • java布局中最为简单的便是FlowLayout流式布局,组件按照设置对齐方式从左向右排列,一行排满到下一行继续排列。让我们直接看一下代码:public Demo01() { setTitle("流式布局应用"); setBounds(200, ...
  • 作者:firstmiki ...来源:firstmiki的博客...这篇博文仅仅简单介绍了三种常见的布局管理器,都是一些简单应用; 一、 边界布局管理器(FlowLayout) /* * 功能:演示边界布局管理器:组件的位置和大小 */ package GU...
  • java FlowLayout布局管理

    2010-06-21 17:15:13
    java FlowLayout布局管理 java FlowLayout布局管理 java FlowLayout布局管理
  • java布局之GridLayout

    千次阅读 2014-01-26 03:40:53
    GridLayout是一种非常简单的布局,它的每个组件的大小都相等。这里不许多说,直接上代码和图片说明 /* * GridLayoutDemo.java requires no other files. */ import java.awt.Container; import java.awt....
  • java 布局之FlowLayout

    千次阅读 2014-01-25 21:39:05
    FloswLayout是每个JPanel对象的默认布局管理器,它就是按照顺序行云流水般的把所有的组件一个一个的画上去。例子很简单 /* * BoxLayoutDemo.java requires no other files. */ import java.awt.Component; ...
  • java布局之BoxLayout

    万次阅读 2014-01-25 21:21:22
    package caculatePos;... * BoxLayoutDemo.java requires no other files. */ import java.awt.Component; import java.awt.Container; import javax.swing.BoxLayout; import javax.swing.JButton; import
  • java BorderLayout版面布局 java BorderLayout版面布局 java BorderLayout版面布局
  • 使用setBounds()函数设置Java布局

    万次阅读 多人点赞 2020-05-03 16:21:31
    Java的swing布局设置 萌新的第一篇文章请多关照~ 这里的布局说的是Layout布局,对于JFrame默认Boder布局,其他组件默认Flow布局,但是当你真正进行设计的时候,总会有偏差,这里介绍一个方法。 当某一个类继承...
  • java布局管理器总结

    千次阅读 多人点赞 2017-04-03 18:11:47
    BorderLayout FlowLayout GridLayout GridBagLayout ...java.lang.Object –java.awt.BorderLayout 将版面划分成东、西、南、北、中五个区域,将添加的组件按指定位置放置。 BorderLayout.EAST Border
  • java 布局管理器

    千次阅读 2013-10-20 20:50:27
    为了实现跨平台性并获得动态的布局效果,java 在容器中设置了布局管理器负责对容器内的组件进行管理。布局管理器决定了容器内组件的布局、排列顺序、大小、位置等。  在这里简单总结一下java常用的几个布局管理器...
  • JAVA布局管理器

    千次阅读 2010-02-05 09:00:00
    JAVA的界面布局原理:因为Java是跨平台语言,使用绝对坐标显然会导致问题,即在不同平台、不同分辨率下的显示效果不一样。Java 为了实现跨平台的特性并且获得动态的布局效果,Java将容器内的所有组件安排给一个...
  • Java布局管理

    千次阅读 2006-10-18 08:55:00
    06-10-10:19章:布局管理布局管理安排一个容器的子控件。根据布局方案,它安排组件的大小和位置。每个容器都有一个默认的布局管理器。注意:虽然我们创建了一个布局对象,但是我们没有必要获取它的一个引用;通常...
  • Java布局管理—卡片布局(CardLayout)

    千次阅读 2019-07-22 11:17:27
    卡片布局能够让多个组件共享同一个显示空间,共享空间的组件之间的关系就像一叠牌,组件叠在一起,初始时显示该空间中第一个添加的组件,通过CardLayout类提供的方法可以切换该空间中显示的组件。 构造方法: ...
  • FlowLayout,BorderLayout,GridLayout是3种常见的java布局Layout 方式,下面是使用教程. 一、FlowLayout 浮动布局. 1. 创建一个普通的窗口Frame ,创建教程点击跳转 package GUI.Layout布局管理器; import java.awt.*;...
  • 离开Java布局管理器

    千次阅读 2006-08-28 16:46:00
    离开Java布局管理器 转载自:www.csdn.net Java语言中提供的布局管理器种类有:边界式布局、卡片式布局、流式布局和网格式布局等,各有不同的特点
  • java网格布局

    千次阅读 2018-09-22 20:48:32
    package javax.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; import java.awt.Container; import java.awt.GridBagLayout; import java.awt.... * 网格布局  */ public class W...
  • JAVA 界面布局

    千次阅读 2011-06-16 12:16:00
    JAVA的界面布局原理:因为Java是跨平台语言,使用绝对坐标显然会导致问题,即在不同平台、不同分辨率下的显示效果不一样。Java 为了实现跨平台的特性并且获得动态的布局效果,Java将容器内的所有组件安排给一个...
  • java中JFrame布局

    2012-12-10 16:38:59
    java中JFrame的几种布局,流布局,网格布局,卡片布局,边框布局
  • 华为鸿蒙HarmonyOS Java 布局开发

    千次阅读 2021-02-01 16:43:44
    在HarmonyOS应用中,所有的用户界面元素都是由 Component和ComponentContainer对象构成。...Java UI 框架提供了一些常用的界面元素,也可以称为组件,组件一般直接继承Component 或它的子类,如 Text、Image等 C..

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 370,581
精华内容 148,232
关键字:

java布局方式

java 订阅