一、导入包

AWT(抽象窗口工具包):是java提供用来建立和设置java的图形用户界面的基本工具

Swing(轻量级的图形界面组件):是以AWT平台为基础构建起来的新组件与AWT相比,Swing组件在实现时不包括任何依赖特定平台的代码,因此具有更高的平台无关性和良好的移植性。

以下引用的是这次项目中Register.java的代码,拿出来单独运行可能不行,因包含了连接数据库和导入其他类的部分代码。

二、创建窗体常见的对象、组件和函数

  • 对象、组件
    • JPanel pContent;//JPanel是Java图形用户界面(GUI)工具包swing中的面板容器类,相当于创建一个桌布。
    • JLabel labuname;//JLabel组件表示的是一个标签,本身是用于显示信息的
    • JTextField txtuname;//JTextField 是一个文本框,它允许编辑单行文本。
    • JTextArea//多行文本输入
    • JButton btnreg;//JButton是一个按钮组件
    • super("用户账户管理");//引号内填写窗体的标题文字
    • JCheckBox//复选框
    • JComboBox//下拉列表
    • JPasswordField//密码框
      组件new出来后,是不会显示的,要将其添加add到这个窗体中,才会显示.
  • 函数
    • 设置位置大小:.setBounds(0, 0, 500, 400);
      //一共有4个参数,前面两个是坐标信息,即x,y坐标。对于屏幕坐标系,这个坐标原点在屏幕左上角,以下为y正轴,右为x正轴;后两个为宽度和高度
    • 显示窗体:setVisible(ture);
      //不加上窗体不会显示。
    • 清楚布局方式:.setLayout(null);
    • 添加组件:.add(labuname);
      括号内为要添加的组件,此处labuname是JLabel文本标签内
    • 窗体居中:setLocationRelativeTo(null);
    • 按钮点击事件:
      btnreg.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
      }
      }
    • 设置背景颜色:.setBackground(Color.pink)

三、实例代码

package com.xmkj.view;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JButton;

import com.sun.corba.se.spi.orbutil.fsm.Guard.Result;
import com.xmkj.logic.BusytblUser;

import java.awt.Color;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Register extends JFrame{
    JPanel pContent;//桌布
    JLabel labuname;//文本标签
    JLabel labupwd;
    JTextField txtuname;//文本框
    JTextField txtupwd;
    JButton btnreg;//按钮
    String vuname = "";
    String vpwd = "";
    String sql = "";
    String sql1 = "";

    ResultSet rs = null;
    public Register() {
        super("用户账户管理");
        this.setSize(500,400);
        this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        pContent = new JPanel();
        labuname = new JLabel("用户名:");
        labupwd = new JLabel("密码:");

        txtuname = new JTextField(20);
        txtupwd = new JTextField(20);
        btnreg = new JButton("注册");

        pContent.setBounds(0, 0, 500, 400);//设置位置大小
        setLocationRelativeTo(null);//chuan

        labuname.setBounds(130,100, 120, 35);
        labupwd.setBounds(140, 150, 120, 35);

        txtuname.setBounds(190, 108, 80, 20);
        txtupwd.setBounds(190, 158, 80, 20);

        btnreg.setBounds(190, 210, 60, 20);

        pContent.add(labuname);
        pContent.add(labupwd);
        pContent.add(txtuname);
        pContent.add(txtupwd);
        pContent.add(btnreg);

        btnreg.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                vuname = txtuname.getText().trim();
                vpwd = txtupwd.getText().trim();

                if(vuname.equals("")) {
                    JOptionPane.showMessageDialog(null, "用户名不能为空!");
                    return;
                }
                if(vpwd.equals("")) {
                    JOptionPane.showMessageDialog(null, "密码不能为空!");
                    return;
                }
                //重复判断
                sql1 = "select count(id) from tbluser where uname = '"+vuname+"'";
                rs = new BusytblUser().query(sql1);

                    try {
                        while (rs.next( )) {
                            try {
                                if(rs.getInt(1) > 0) {
                                    JOptionPane.showMessageDialog(null, "用户名重复,请重新设置用户名");
                                    return;
                                }else {
                                    sql = "insert into tbluser(uname,pwd) values('"+vuname+"','"+vpwd+"')";


                                    try {
                                        new BusytblUser().dataop(sql);
                                        JOptionPane.showMessageDialog(null, "用户注册成功!");
                                        return;
                                    } catch (Exception e1) {
                                        e1.printStackTrace();
                                    }
                                }
                            } catch (HeadlessException e1) {
                                // TODO Auto-generated catch block
                                e1.printStackTrace();
                            } catch (SQLException e1) {
                                // TODO Auto-generated catch block
                                e1.printStackTrace();
                            }
                        }
                    } catch (SQLException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }




                    }    

        }
        );


        pContent.setLayout(null);//清除布局方式
        pContent.setBackground(Color.pink);

        this.getContentPane().add(pContent);
        this.setVisible(true);
    }
}