//在Java的GUI设计中,如果要想实现在一个窗体中多个界面并且能在这些界面内可以随意切换,那选项卡面板绝对是最佳的选择,下面将具体介绍JTabbedPane的使用方法//pane是Java中的一个控件,是不具备包含其他控件的功能的;而panel虽然也是一个控件,但是它还有一个身份就是布局,它可以管理其他的控件。package qq.b;//通过点击具有给定标题和/或图标的选项卡,// 用户可以在一组组件之间切换的组件。import javax.swing.*;import java.awt.*;public class BuJu {public static void main(String[] args) {// TODO Auto-generated method stubnew ShowLayout();}}//除了空布局不需要新建之外,其他都需要新建,并且所有布局都需要添加到窗口中//边框布局不需要新建也不需要添加,因为它是默认布局class ShowLayout extends JFrame{JTabbedPane p;ShowLayout(){// BorderLayout borderLayout = new BorderLayout();PanelGridLayout gridLayout = new PanelGridLayout();NullLayout nullLayout =new NullLayout();p=new JTabbedPane();p.add("网格布局",gridLayout);p.add("空白布局",nullLayout);//setLayout(borderLayout);JButton S =new JButton("南方");JButton E =new JButton("东方");//JButton和Button有什么区别吗?JButton W =new JButton("西方");add(new JButton("北方"),BorderLayout.NORTH);add(S,BorderLayout.SOUTH);add(E,BorderLayout.EAST);add(W,BorderLayout.WEST);add(p,BorderLayout.CENTER);setBounds(10,10,570,379);setVisible(true);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);validate();}}class NullLayout extends JPanel{//面板也是组件,需要添加在底层容器中JButton but ;JTextField te;NullLayout(){setLayout(null);but= new JButton("确定");te=new JTextField();add(but);add(te);te.setBounds(100,30,90,30);but.setBounds(190,30,66,30);}}class PanelGridLayout extends JPanel {PanelGridLayout(){GridLayout grid = new GridLayout(12,12);this.setLayout(grid);//往容器里面添加布局,布局添加到面板里面,面板添加到容器里面。Label label[][] = new Label[12][12];//声明了十二个标签for(int i=0;i<12;i++) {for(int j=0;j<12;j++) {label[i][j] = new Label();//创建标签if((i+j)%2==0)label[i][j].setBackground(Color.black);elselabel[i][j].setBackground(Color.white);add(label[i][j]);}}}}[点击并拖拽以移动]
运行效果:
创建一个窗口 在窗口中心位置添加一个选项卡窗格 窗口采用边框布局 选项卡窗格添加两个面板 一个空面板 一个类似于千鸟格的面板。