本文共 1703 字,大约阅读时间需要 5 分钟。
登录界面,我们这样分割一下,窗体被分割成两个部分,单独看上面的输入区域,你看看是什么布局,是典型的表格布局,2行2列;再单独看下面的按钮区域,也能看出来是比较典型的FlowLayout。如果我们将上面的输入区域作为一个整体,下面的按钮区域也作为一个整体,这两个组件放在窗体上,整个窗体该用什么布局呢?显然是边框布局,在这个边框布局里,输入区域在中间,按钮区域在下边。
剩下一个问题了,怎么将几个东西组合起来?有一个叫做面板的类来完成这个工作,其实面板类我们用过很多次了,就是绘图中的画图JPanel。需要说明的是,不但JPanel的对象可以放在JFrame的对象上,而且JPanel对象也可以放在另外的JPanel对象上,利用这这样一层层的整合,我们可以组合出非常复杂的界面。
用户名和密码的字使用JLabel,new的时候将字放到参数里;输入框使用JTextField,而能够将用户输入显示成“*”的密码输入框使用JPasswordField。
package task;import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.GridLayout;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;public class QQLogin { public static void main(String[] args) { // TODO Auto-generated method stub JFrame w=new JFrame(); w.setSize(250,125); //new 组件 JLabel labUser=new JLabel("用户名"); JLabel labPass=new JLabel("密码"); JTextField txtUser=new JTextField(); JTextField txtPass=new JTextField(); JButton btnLogin=new JButton("登录"); JButton btnReg=new JButton("注册"); JButton btnCannel=new JButton("取消"); //布置输入面板 JPanel panInput=new JPanel(); panInput.setLayout(new GridLayout(2,2)); panInput.add(labUser); panInput.add(txtUser); panInput.add(labPass); panInput.add(txtPass); //布置按钮面板 JButton panButton=new JButton(); //为什么用Jpanel panButton=new JPanel();也可以呢 panButton.setLayout(new FlowLayout()); panButton.add(btnLogin); panButton.add(btnReg); panButton.add(btnCannel); //布置窗体边框布局 w.setLayout(new BorderLayout()); w.add(panInput,BorderLayout.NORTH); //w.add(txtUser,BorderLayout.WEST); w.add(panButton,BorderLayout.SOUTH); w.setVisible(true); }}