java--Swing 组件的使用 布局管理器

来源:互联网 发布:yum install eclipse 编辑:程序博客网 时间:2024/05/03 16:26

GUI (Graphics User Interface)图形用户界面

Awt抽象窗口工具栏(Abstract Window Toolkit)

Swing 解决了lcd(本地化)问题。

Swt   IBMswing比较消耗内存创建的一个新的GUI

Jface Swt基础上又创建一个更易用,功能强大的图形包JFace

JFrame是一个顶层容器类,(可以添加其他swing组建的类

Swing是继承Awt

Swing组建

JFrame jf=new JFrame();//给窗口设置标题jf.setTitle("hello,world!");//设置大小,按像素[1像素=jf.setSize(200,200);//设置尺寸jf.setVisible(true);//显示jf.setLocation(100,200);//设置窗口位置(从左上角计为(0,0)JButton jb1=new JButton("我是按钮!");//添加一个按钮。jf.add(jb1); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置当退出窗口时,保证jvm也退出 JBtutton也是一个容器,可以添加其他组建

布局管理器

1概念:组件在容器中的位置和大小都是由布局管理器来决定的。所有的容器都会使用一个布局管理器,通过它来自动进行组建的布局管理。

2种类:流式布局管理器:(FlowLayout

           边界布局管理器:(BorderLayout

           网格布局管理器:(GridLayout

          卡片布局管理器:(CardLayout)

           网格布局管理器:(GridBagLayout)

             前三种为最常见的布局管理器

边界布局管理器:

              边界布局将容器简单的分为东西南北中5个区域,中间区域最大。

                
b1=new JButton("中部");jb2=new JButton("北部");jb3=new JButton("东部");jb4=new JButton("南部");jb5=new JButton("西部");this.add(jb1,BorderLayout.CENTER);this.add(jb2,BorderLayout.NORTH);this.add(jb3,BorderLayout.EAST);this.add(jb4,BorderLayout.SOUTH);this.add(jb5,BorderLayout.WEST);this.setTitle("边界布局演示");this.setSize(200,200);this.setLocation(300,300);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);

流式布局

         :按照组建的添加顺序来将组建从左到右放置在容器中,当到达容器的边界时,组建将放置到下一行,可以以左对齐,右对齐,居中对齐的方式排列组建。

    1,不限制他所管理的组建大小,允许它们有最佳大小

    2.当容器被缩放时,组建的位置可能发生变化,但组建的大小不变

    3.默认为居中对齐,可以通过FlowLyayoutint align)函数来指定对齐方式

  jb1=new JButton("赵瑞琪");jb2=new JButton("张春明");jb3=new JButton("郭金康");jb4=new JButton("李铭贤");jb5=new JButton("史朋");jb6=new JButton("李彬");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.setTitle("流式布局演示");this.setSize(400,500);this.setLocation(300,300);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  this.setVisible(true);

ThissetResizable(false);不允许窗口改变大小。


网格布局:

将容器分割成多行多列,组建被填充到每个网格中,添加到容器中的组建首先放置在左上角的网格中,从左到右放置其他组建,当占满该行的所有网格后,接着继续在下一行从左到右放置组建。

1,组建的相对位置不随容器的缩放而变化,但大小会变化

2,所有组建的大小相同。

3,可以通过GridLayout(int rows,int cols, int hgap,int vgap)来指定网格的行/列,水平间隙/垂直间隙。//this.setLayout(new GridLayout(3,3,10,10));

参数说明: rows:行数 cols: 列数  hgap: 垂直间隙 vgap:列间隙

面板组建(JPannel)

文本框:JTextFIeld  //jtf1=new JTextField(10);

密码框:JPasswordField//jpw=new JPasswordField(10);10代表所能输入的最多数量

标签:JLabel;                       //jlb1=new JLabel("用户名");

复选框组建:JCheckBox 

单选框组建:JRadioButton    jrb1=new JRadioButton("男");//要将几个按钮放在

一个ButtonGroup组里

下拉框组建:JComboBox

JComboBox a;

a=new JComboBox(); 

String[] g={“北京”,”天津””上海“}

a=new JComboBOx(g);

列表框组建:JList

JComboBox一样

滚动窗组建:JScrollPane  

JScrollPane sb;

a.SetVisableRowCount(2);显示两个数据

sb=new JScrollPane(a);//aJComboBox的对象