Java布局管理器组件(4)

而anchor参数则是当一个组件大于分配给它的单元格时发挥作用,该约束就是约定如何处理该组件,它的值如下所示:
- GridBagConstraints.CENTER:居中缩小。
- GridBagConstraints.NORTH:顶部缩小。
- GridBagConstraints.NORTHEAST:左上角缩小。
- GridBagConstraints.EAST:右侧缩小。

GridBagLayout布局管理器的构造器只有一种,就是不带参数的构造器。下面通过代码认识下该布局管理器。

import javax.swing.*; import java.awt.*; /** * GridBagLayout * Created by veione on 5/9/16. */ public class GridBagLayoutCase extends JPanel{ private static final int WIDTH=300; private static final int HEIGHT=200; JFrame loginFrame; public void add(Component c,GridBagConstraints constraints,int x,int y,int w,int h){ constraints.gridx=x; constraints.gridy=y; constraints.gridwidth=w; constraints.gridheight=h; add(c,constraints); } public GridBagLayoutCase(){ //设置顶层容器 loginFrame=new JFrame("信息管理系统"); loginFrame.setDefaultCloseOperation(Tools.EXIT_ON_CLOSE); //创建网格组布局方式对象 GridBagLayout layout=new GridBagLayout(); setLayout(layout); loginFrame.add(this,BorderLayout.WEST); loginFrame.setSize(WIDTH,HEIGHT); Tools.centerWindow(loginFrame); JButton btnOk=new JButton("确认"); JButton btnCancel=new JButton("取消"); JLabel lblTitle=new JLabel("用户登录"); JLabel lblName=new JLabel("用户名"); JLabel lblPwd=new JLabel("密码"); JTextField txtName=new JTextField(15); JPasswordField txtPwd=new JPasswordField(15); //创建约束对象 GridBagConstraints constraints=new GridBagConstraints(); constraints.fill=GridBagConstraints.NONE; constraints.anchor=GridBagConstraints.EAST; constraints.weightx=3; constraints.weighty=4; add(lblTitle,constraints,0,0,3,1); add(lblName,constraints,0,1,1,1); add(lblPwd,constraints,0,2,1,1); add(txtName,constraints,2,1,1,1); add(txtPwd,constraints,2,2,1,1); add(btnOk,constraints,0,3,1,1); add(btnCancel,constraints,2,3,1,1); loginFrame.setResizable(false); loginFrame.setVisible(true); } public static void main(String[] args) { new GridBagLayoutCase(); } }

以上代码运行结果如下:

GridBagLayout结果示例

CardLayout

CardLayout布局管理器非常简单,它将容器中的每一个组件当作一个卡片,一次仅有一个卡片可见,如最初显示容器时,CardLayout对象的第一个组件可见,其它组件都是不可见的。下面将以表格形式给出CardLayout布局管理器的构造器。

CardLayout布局管理器的构造器说明
CardLayout()   构造一个间距大小为0的新卡片布局  
CardLayout(int h,int v)   构造一个卡片布局管理器,其中h和v分别为卡片间水平和垂直方向上的空白空间  

在这个布局管理器中还有一些常用方法,说明如下:

GridLayout布局管理器常用方法说明
public void first(Container parent)   移到指定容器的第一个卡片  
public void next(Container parent)   移到指定容器的下一个卡片  
public void previous(Container parent)   移到指定容器的前一个卡片  
public void last(Container parent)   移到指定容器的最后一个卡片  
public void show(Container parent,String name)   显示指定卡片  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/29309af9c4ff3a48525f10b652d17df8.html