当前位置: 代码迷 >> 综合 >> GUI 编程【二】 (GridLayout,BorderLayout,将面板作为容器使用)
  详细解决方案

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

热度:100   发布时间:2023-09-30 02:39:00.0

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);  }  }
效果图

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

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);  }  }
效果

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

将面板作为容器使用:

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());//创建面板p1JPanel 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"));//创建面板p2JPanel 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,将面板作为容器使用)