图书管理系统java版

本文的目的就是通过图书管理系统掌握数据库编程技术,能正确连接数据库,能对数据库中信息进行查询、插入、删除、修改。
内容:在数据库中创建一张书目信息表,包括书名、作者、出版社、出版日期、书号、价格字段。设计一个GUI界面进行书目管理。在该界面上有四个选项卡,分别是查询、插入、删除、修改。点击查询选项卡,出现的界面上有书名、作者、出版社、书号四个文本框,一个按钮和一个只读文本区。文本框内容可以为空,输入相应的查询信息后(例如根据书名查询可以仅输入书名),点击界面上的“查询”按钮,可以在界面下方的文本区中显示出符合条件的书目详细信息。点击插入选项卡,出现的界面上有书名、作者、出版社、出版日期、书号、价格文本框,一个按钮。在文本框中输入信息后,点击“插入”按钮,该书目信息插入数据库表中。点击删除选项卡,出现的界面上有书名文本框和一个按钮,输入书名后点击“删除”按钮,该书目信息从数据库表中删除。点击修改选项卡,出现的界面上有书名、作者、出版社、出版日期、书号、价格文本框,一个按钮。输入的书名必须是已存在的,否则会弹出消息框显示出错信息。输入信息后,点击“修改”按钮,数据库表中的相应书目信息被修改为新值。
源码:

BookInfo.java

 * 项目名称:图书管理系统
 * 版本:  1.0
 * 创建者: 张俊强
 * 创建时间:2016/5/26
 * */
package librarySystem; 

import java.awt.*; 

import javax.swing.*; 

import java.awt.event.*;
import java.sql.*; 

@SuppressWarnings("serial")
public class BookInfo extends JFrame implements ActionListener{
  //主角面上的控件
  private JLabel inputLabel;
  private JTextField inputText;
  private JButton searchBut; 

  private JTable bookTable;
  private JScrollPane bookScroll;
  private JButton addBut;
  private JButton modifyBut;
  private JButton deleteBut;
  private JButton refreshBut;
  private BookTableModel bookTableModel;
  public static void main(String[] args) throws SQLException {
    // TODO Auto-generated method stub
    BookInfo bookInfo=new BookInfo();
    bookInfo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    bookInfo.setBounds(350, 150, 600, 400);
    bookInfo.setVisible(true);
//   bookInfo.importSQL();//导出数据
    bookInfo.setMinWindowLayout();//设置数据
  }
  public BookInfo() throws SQLException{
    //创建主界面上的控件
    inputLabel=new JLabel("请输入书名:");
    inputText=new JTextField(10);
    searchBut=new JButton("查询");
    bookTableModel=new BookTableModel(); 

    bookTable=new JTable(bookTableModel);
    bookScroll=new JScrollPane(bookTable); 

    addBut=new JButton("添加");
    modifyBut=new JButton("修改");
    deleteBut=new JButton("删除");
    refreshBut=new JButton("刷新");
    searchBut.addActionListener(this);
    addBut.addActionListener(this);
    refreshBut.addActionListener(this);
    modifyBut.addActionListener(this);
    deleteBut.addActionListener(this); 

  } 

  void setMinWindowLayout(){
    //主界面布局
    Container con1=new Container();
    con1.setLayout(new FlowLayout());
    con1.add(inputLabel);
    con1.add(inputText);
    con1.add(searchBut);
    con1.add(refreshBut);
    Container con2=new Container();
    con2.setLayout(new FlowLayout());
    con2.add(addBut);
    con2.add(modifyBut);
    con2.add(deleteBut);
    this.setLayout(new BorderLayout());
    this.add(con1,BorderLayout.NORTH);
    this.add(bookScroll,BorderLayout.CENTER);
    this.add(con2,BorderLayout.SOUTH);
    this.validate();
  }
  @Override
  public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    if(e.getSource()==searchBut){
      if(!this.inputText.getText().equals("")){
        String bookName=this.inputText.getText();
        String sql="SELECT * FROM book_info WHERE book_name ='"+bookName+"'";
        try {
        bookTableModel=new BookTableModel(sql);
        bookTable.setModel(bookTableModel);
      } catch (SQLException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
      } 

      }else{
        JOptionPane.showMessageDialog(this,"输入不能为空", "提示",JOptionPane.PLAIN_MESSAGE);
      }
    }
    else if(e.getSource()==addBut){
      @SuppressWarnings("unused")
      AddBookDialog addWin=new AddBookDialog(this,"添加图书",true);
      this.refreshTable();
    }
    else if(e.getSource()==refreshBut){
      this.refreshTable();
    }
    else if(e.getSource()==deleteBut){
      int rowNum=bookTable.getSelectedRow();
      if(rowNum<0||rowNum>bookTable.getRowCount()){
        JOptionPane.showMessageDialog(this,"未选中", "提示",JOptionPane.PLAIN_MESSAGE);
      }
      else{
        //System.out.print(bookName);
        int n = JOptionPane.showConfirmDialog(null, "确认删除吗?", "确认删除框", JOptionPane.YES_NO_OPTION);
        if (n == JOptionPane.YES_OPTION) {
          String bookNum=(String) bookTable.getValueAt(rowNum, 0);
          String sql="DELETE FROM book_info WHERE book_num= '"+bookNum+"'";
          bookTableModel.deleteBook(sql);
          this.refreshTable();
          JOptionPane.showMessageDialog(this,"删除成功", "提示",JOptionPane.PLAIN_MESSAGE);
        } else if (n == JOptionPane.NO_OPTION) {
          return;
        }
      }
    }
    else if(e.getSource()==modifyBut){
      bookTable.setModel(bookTableModel);
      int rowNum=bookTable.getSelectedRow();
      if(rowNum<0||rowNum>bookTable.getRowCount()){
        JOptionPane.showMessageDialog(this,"未选中", "提示",JOptionPane.PLAIN_MESSAGE);
      }
      else{
        @SuppressWarnings("unused")
        ModifyBook modifyWin=new ModifyBook(this,"修改信息",true,bookTableModel,rowNum);
        this.refreshTable();
      }
    } 

  }
  public void refreshTable(){
    BookTableModel searchBook;
    try {
      searchBook = new BookTableModel("SELECT * FROM book_info");
      bookTable.setModel(searchBook);
      bookTableModel=searchBook;
    } catch (SQLException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
    }
  }
}

BookTableModel.java

package librarySystem;
import java.sql.*;
import java.util.*; 

/*
 * 图书表模型
 * */
import javax.swing.table.*;
@SuppressWarnings("serial")
public class BookTableModel extends AbstractTableModel{
  //表的元素
  private Vector<Vector<String>> rowData;
  private Vector<String> colName;
  // 数据库
  private PreparedStatement stmt;
  private ResultSet result;
  public BookTableModel(String sql) throws SQLException{
    this.initData(sql);
  }
  public BookTableModel() throws SQLException{
    this.initData("SELECT * FROM book_info");
  }
  public void initData(String sql) throws SQLException{
    setRowData(new Vector<Vector<String>>());
    setColName(new Vector<String>());
    getColName().add("书号");
    getColName().add("书名");
    getColName().add("作者");
    getColName().add("出版社");
    getColName().add("出版时间");
    getColName().add("价格");
    /*
     * 数据库的导入
     * */
    try {
      Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    String url= "jdbc:mysql://localhost:3306/device";
    String user="root";
    String password="zjq1314520";
    Connection con=DriverManager.getConnection(url,user,password);
    stmt = con.prepareStatement(sql);
    result=stmt.executeQuery();
    importSQL();
  }
  void importSQL() throws SQLException{
    // TODO Auto-generated method stub
    @SuppressWarnings("unused")
    boolean signNull=true;
    while(result.next()){
      Vector<String> item=new Vector<String>();
      for(int i=1;i<7;i++){
        item.add(result.getString(i));
      }
      getRowData().add(item);
      signNull=false;
    }
    result.close();
  }
  @Override
  public int getColumnCount() {//得到列数
    // TODO Auto-generated method stub
    return this.colName.size();
  } 

  @Override
  public int getRowCount() {//得到行数
    // TODO Auto-generated method stub
    return this.rowData.size();
  } 

  @Override
  public Object getValueAt(int row, int col) {//得到某行某列的数据
    // TODO Auto-generated method stub
    return (this.rowData.get(row)).get(col);
  } 

  @Override
  public String getColumnName(int column) {
    // TODO Auto-generated method stub
    return this.colName.get(column);
  } 

  public Vector<Vector<String>> getRowData() {
    return rowData;
  }
  public void setRowData(Vector<Vector<String>> rowData) {
    this.rowData = rowData;
  }
  public Vector<String> getColName() {
    return colName;
  }
  public void setColName(Vector<String> colName) {
    this.colName = colName;
  }
  public void addBook(String sql){
    try {
      stmt.executeUpdate(sql);
    } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
//   initData("SELECT * FROM book_info");
  }
  public void deleteBook(String sql){
    try {
      stmt.executeUpdate(sql);
    } catch (SQLException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
    }
  }
}

AddBookDialog.java

package librarySystem; 

import java.awt.*;
import java.awt.event.*;
import java.sql.SQLException; 

import javax.swing.*; 

@SuppressWarnings("serial")
public class AddBookDialog extends JDialog implements ActionListener{
  private JLabel bookNumLabel;
  private JLabel bookNameLabel;
  private JLabel bookWriterLabel;
  private JLabel bookPublishLabel;
  private JLabel bookPriceLabel;
  private JLabel bookTimeLabel;
  private JTextField bookNumText;
  private JTextField bookNameText;
  private JTextField bookWriterText;
  private JTextField bookPublishText;
  private JTextField bookPriceText;
  private JTextField bookTimeText; 

  private JButton submitBut;
  private JButton cancelBut;
  public AddBookDialog(Frame owner,String title,boolean model){
    //父窗口,窗口名,是否是模式窗口
    super(owner,title,model);
    bookNumLabel=new JLabel("书  号:");
    bookNameLabel=new JLabel("书  名:");
    bookWriterLabel=new JLabel("作  者:");
    bookPublishLabel=new JLabel("出版社:");
    bookPriceLabel=new JLabel("价  格:");
    bookTimeLabel=new JLabel("出版时间:"); 

    bookNumText=new JTextField(10);
    bookNameText=new JTextField(10);
    bookWriterText=new JTextField(10);
    bookPublishText=new JTextField(10);
    bookPriceText=new JTextField(10);
    bookTimeText=new JTextField(9); 

    submitBut=new JButton("确认");
    cancelBut=new JButton("取消");
    submitBut.addActionListener(this);
    cancelBut.addActionListener(this);
    this.setBounds(350,150,400,260);
    this.setResizable(false);
    this.setLayout(new BorderLayout());
    initLayout();
  }
  public void initLayout(){
    Container[] con1=new Container[6];
    for(int i=0;i<6;i++) con1[i]=new Container();
    con1[0].setLayout(new FlowLayout());
    con1[0].add(bookNumLabel);
    con1[0].add(bookNumText); 

    con1[1].setLayout(new FlowLayout());
    con1[1].add(bookNameLabel);
    con1[1].add(bookNameText); 

    con1[2].setLayout(new FlowLayout());
    con1[2].add(bookWriterLabel);
    con1[2].add(bookWriterText); 

    con1[3].setLayout(new FlowLayout());
    con1[3].add(bookPublishLabel);
    con1[3].add(bookPublishText); 

    con1[4].setLayout(new FlowLayout());
    con1[4].add(bookPriceLabel);
    con1[4].add(bookPriceText); 

    con1[5].setLayout(new FlowLayout());
    con1[5].add(bookTimeLabel);
    con1[5].add(bookTimeText); 

    Container con2=new Container();
    con2.setLayout(new BorderLayout());
    con2.add(con1[0],BorderLayout.NORTH);
    con2.add(con1[1],BorderLayout.CENTER);
    con2.add(con1[2],BorderLayout.SOUTH); 

    Container con3=new Container();
    con3.setLayout(new BorderLayout());
    con3.add(con1[3],BorderLayout.NORTH);
    con3.add(con1[4],BorderLayout.CENTER);
    con3.add(con1[5],BorderLayout.SOUTH); 

    Container con4=new Container();
    con4.setLayout(new FlowLayout());
    con4.add(submitBut);
    con4.add(cancelBut);
    Container con5=new Container();
    con5.setLayout(new BorderLayout());
    con5.add(con2,BorderLayout.NORTH);
    con5.add(con3,BorderLayout.CENTER);
    con5.add(con4,BorderLayout.SOUTH); 

    this.add(con5,BorderLayout.CENTER);
    this.validate();
    this.setVisible(true);
  }
  @Override
  public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    if(e.getSource()==submitBut){
      if(bookNumText.getText().equals("")||bookNameText.getText().equals("")||
          bookWriterText.getText().equals("")||bookPublishText.getText().equals("")||
          bookPriceText.getText().equals("")||bookTimeText.getText().equals("")){
        //System.out.println("输入失败");
        JOptionPane.showMessageDialog(this,"输入不能有空", "提示",JOptionPane.PLAIN_MESSAGE);
      }
      else{
        //System.out.println("输入成功");
        String sql="insert into "
            + "book_info(book_num,book_name,book_writer,publish_house,book_price,publish_time)"
            + "values('"+bookNumText.getText()+"','"+bookNameText.getText()+"','"+bookWriterText.getText()+"','"+bookPublishText.getText()+"','"+bookPriceText.getText()+"','"+bookTimeText.getText()+"')";
        try {
          BookTableModel book=new BookTableModel();
          book.addBook(sql);
        } catch (SQLException e1) {
          // TODO Auto-generated catch block
          e1.printStackTrace();
        }
        JOptionPane.showMessageDialog(this,"添加成功", "提示",JOptionPane.PLAIN_MESSAGE);
        this.setVisible(false);
      }
    }
    if(e.getSource()==cancelBut){
      this.setVisible(false);
    }
  }
}

ModifyBook.java

package librarySystem; 

import java.awt.*;
import java.awt.event.*;
import java.sql.SQLException;
import javax.swing.*; 

@SuppressWarnings("serial")
public class ModifyBook extends JDialog implements ActionListener{
  private JLabel bookNumLabel;
  private JLabel bookNameLabel;
  private JLabel bookWriterLabel;
  private JLabel bookPublishLabel;
  private JLabel bookPriceLabel;
  private JLabel bookTimeLabel;
  private JTextField bookNumText;
  private JTextField bookNameText;
  private JTextField bookWriterText;
  private JTextField bookPublishText;
  private JTextField bookPriceText;
  private JTextField bookTimeText;
  private JButton submitBut;
  private JButton cancelBut;
  private BookTableModel bookModel;
  private int rowNum;
  public ModifyBook(Frame owner,String title,boolean type,BookTableModel model,int row){
    super(owner,title,type);
    bookModel=model;
    rowNum=row;
    bookNumLabel=new JLabel("书  号:");
    bookNameLabel=new JLabel("书  名:");
    bookWriterLabel=new JLabel("作  者:");
    bookPublishLabel=new JLabel("出版社:");
    bookPriceLabel=new JLabel("价  格:");
    bookTimeLabel=new JLabel("出版时间:"); 

    bookNumText=new JTextField(10);
    bookNameText=new JTextField(10);
    bookWriterText=new JTextField(10);
    bookPublishText=new JTextField(10);
    bookPriceText=new JTextField(10);
    bookTimeText=new JTextField(9); 

    submitBut=new JButton("确认修改");
    cancelBut=new JButton("取消");
    submitBut.addActionListener(this);
    cancelBut.addActionListener(this);
    this.setBounds(350,150,400,260);
    this.setResizable(false);
    this.setLayout(new BorderLayout());
    this.setValue();
    this.initLayout(); 

  }
  public void initLayout(){
    Container[] con1=new Container[6];
    for(int i=0;i<6;i++) con1[i]=new Container();
    con1[0].setLayout(new FlowLayout());
    con1[0].add(bookNumLabel);
    con1[0].add(bookNumText); 

    con1[1].setLayout(new FlowLayout());
    con1[1].add(bookNameLabel);
    con1[1].add(bookNameText); 

    con1[2].setLayout(new FlowLayout());
    con1[2].add(bookWriterLabel);
    con1[2].add(bookWriterText); 

    con1[3].setLayout(new FlowLayout());
    con1[3].add(bookPublishLabel);
    con1[3].add(bookPublishText); 

    con1[4].setLayout(new FlowLayout());
    con1[4].add(bookPriceLabel);
    con1[4].add(bookPriceText); 

    con1[5].setLayout(new FlowLayout());
    con1[5].add(bookTimeLabel);
    con1[5].add(bookTimeText); 

    Container con2=new Container();
    con2.setLayout(new BorderLayout());
    con2.add(con1[0],BorderLayout.NORTH);
    con2.add(con1[1],BorderLayout.CENTER);
    con2.add(con1[2],BorderLayout.SOUTH); 

    Container con3=new Container();
    con3.setLayout(new BorderLayout());
    con3.add(con1[3],BorderLayout.NORTH);
    con3.add(con1[4],BorderLayout.CENTER);
    con3.add(con1[5],BorderLayout.SOUTH); 

    Container con4=new Container();
    con4.setLayout(new FlowLayout());
    con4.add(submitBut);
    con4.add(cancelBut);
    Container con5=new Container();
    con5.setLayout(new BorderLayout());
    con5.add(con2,BorderLayout.NORTH);
    con5.add(con3,BorderLayout.CENTER);
    con5.add(con4,BorderLayout.SOUTH);
    this.add(con5,BorderLayout.CENTER);
    this.validate();
    this.setVisible(true);
  }
  public void setValue(){
    this.bookNumText.setText((String) bookModel.getValueAt(rowNum, 0));
    this.bookNumText.setEditable(false); 

    this.bookNameText.setText((String) bookModel.getValueAt(rowNum, 1));
    this.bookWriterText.setText((String) bookModel.getValueAt(rowNum, 2));
    this.bookPublishText.setText((String) bookModel.getValueAt(rowNum, 3));
    this.bookTimeText.setText((String) bookModel.getValueAt(rowNum, 4));
    this.bookPriceText.setText((String) bookModel.getValueAt(rowNum, 5));
    this.validate();
  }
  @Override
  public void actionPerformed(ActionEvent e) {
  // System.out.println(bookPriceText.getText());
    // TODO Auto-generated method stub
    if(e.getSource()==submitBut){
      if(bookNumText.getText().equals("")||bookNameText.getText().equals("")||
          bookWriterText.getText().equals("")||bookPublishText.getText().equals("")||
          bookPriceText.getText().equals("")||bookTimeText.getText().equals("")){
        //System.out.println("输入失败");
        JOptionPane.showMessageDialog(this,"修改不能有空", "提示",JOptionPane.PLAIN_MESSAGE);
      }
      else{
        int n = JOptionPane.showConfirmDialog(null, "确认修改吗?", "确认修改框", JOptionPane.YES_NO_OPTION);
        if (n == JOptionPane.YES_OPTION) {
          String sql="UPDATE book_info SET book_name ='"+bookNameText.getText()+"', book_writer= '"+bookWriterText.getText()+"',publish_house='"+bookPublishText.getText()+"',book_price='"+bookPriceText.getText()+"',publish_time='"+bookTimeText.getText()+"' WHERE book_num = '"+bookNumText.getText()+"' ";
          try {
            BookTableModel book=new BookTableModel();
            book.addBook(sql);
          } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
          }
          JOptionPane.showMessageDialog(this,"修改成功", "提示",JOptionPane.PLAIN_MESSAGE);
          this.setVisible(false);
        } else if (n == JOptionPane.NO_OPTION) {
          return;
        }
      }
    }
    if(e.getSource()==cancelBut){
      this.setVisible(false);
    }
  }
}

程序运行结果:
主界面:

查询界面:

添加图书界面:

修改界面:

删除操作:

数据库界面:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2016-06-06

Java实现排球比赛计分系统

初步计划: 或许由于个人原因,排球计分系统在假期就完成了,一直未写博客,就这样一直在推就是不想写,在加上过完年就工作了,可能刚实习工作比较紧所以一直等到现在. 写这个系统之前我简单构思了一下,因为离校前我去洛阳参加了一个多月的Java培训,所以写项目用的ide是Java环境.刚开始考虑用jsp做界面,架构用mvc,但是后来一想工作量太大而且效果也不是很好.最终写了纯Java代码,在虚拟机上展示. 需求分析: 排球竞赛为五局三胜制,每局比赛中得够25分并且领先对方2分以上的一方将获得一局胜利,先获

一个简陋的java图书管理系统

本文代码为原创一个简陋的管理系统,只做功能的测试.并没有去完善所有应有的功能,只做了输入输出查找,仅供参考! 菜单部分: import java.util.Scanner; public class Menu { int Min = 1; int Max = 3; public void getMenu(){ System.out.println("1.显示/2.输入/3.查找"); } public void getFindMenu(){ System.out.println(&qu

使用Java编写一个简单的Web的监控系统

公司的服务器需要实时监控,而且当用户空间已经满了,操作失败,或者出现程序Exception的时候就需要实时提醒,便于网管和程序员调式,这样就把这个实时监控系统分为了两部分,   第一部分:实时系统监控(cpu利用率,cpu温度,总内存大小,已使用内存大小) 第二部分:实时告警 由于无刷新实时性,所以只能使用Ajax,这里没有用到任何ajax框架,因为调用比较简单 大家知道,由于java的先天不足,对底层系统的调用和操作一般用jni来完成,特别是cpu温度,你在window下是打死用命令行是得不到

java学生信息管理系统设计

本例的学生信息添加进入数据库的事务(可以提交事务,事务回滚,用本地线程完善) 主页面index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <htm

Java+Mysql学生管理系统源码

最近正在学java和数据库,想起以前写的学生管理系统,都是从网上下载,敷衍了事.闲来无事,也就自己写了一个,不过功能实现的不是很多. 开发语言:java: 开发环境:Mysql, java: 开发工具:eclipse 开发此案例,首先得在电脑上有java开发环境和Mysql, java开发环境与Mysql的搭建,就不再叙述了,如果需要,请联系我最下面的联系方式:dingyelf@aliyun.com 此次系统比较简易:数据库中只有一个表:stu;功能:能够对学生增加.删除.修改. 开发步骤:  

简单实现Java版学生管理系统

本文实例为大家分享了Java实现学生管理系统的具体代码,供大家参考,具体内容如下 package BookDemo_1; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Test { public static void main(String[] args) { StudentSys stuSys=new StudentSys("学生管理系统"); stuSys.initWi

Java 模拟银行自助终端系统

一. 本系统模拟银行用户使用ATM机开户.查询.存款.取款功能,要求使用java语言编程实现. 说明: 1. 对于数据输入异常,可使用java异常处理机制进行处理. 2. 评分将以功能实现与代码规范性相结合的方式进行考核. 3. 如果对项目需求有疑问,可以随时以QQ留言方式联系我进行咨询. 4. 国庆放假期间,每天都有老师在公司值班,10月4日是我在公司值班,10月7日正常上班,欢迎大家到公司来做项目. 二. 项目功能要求: 项目开始运行显示主菜单为: 银行自助终端系统 ************

java编写简单的ATM存取系统

新手练手必备~ 密码账户为: 先创建账户类: 复制代码 代码如下: package cn.Atm; /** * @author 偶my耶 */ import java.io.*; import com.project.project; public class Account {   private String number=null;   private String name=null;   private String password=null;   private double mo

JAVA实现简单系统登陆注册模块

前期准备 首先要先明确有个大体的思路,要实现什么样的功能,了解完成整个模块要运用到哪些方面的知识,以及从做的过程中去发现自己的不足.技术方面的进步大都都需要从实践中出来的. 功能:用户注册功能+系统登录功能+生成验证码 知识:窗体设计.数据库设计.JavaBean封装属性.JDBC实现对数据库的连接.验证码(包括彩色验证码)生成技术,还有就些比如像使用正则表达式校验用户注册信息.随机获得字符串.对文本可用字符数的控制等 设计的模块预览图: 彩色验证码预览图: 所用数据库:MySQL 数据库设计

java联系人管理系统简单设计

本文实例为大家分享了java联系人管理系统毕业设计,供大家参考,具体内容如下 要求:  请使用XML保存数据,完成一个联系人管理系统.       用户必须经过认证登录后方可以使用系统.       注册.增加.删除.查看联系人功能.        分模块进行设计. 两层框架-用户交互层,Dao层.             其他支持层-数据封装层.             工具类-加密,工厂Bean. 开发步骤: 第一步:设计数据结构-XML. 第一步:设计数据结构-XML. 第三步:准备资源并

java学生管理系统界面简单实现(全)

学生管理系统简单的实现,供初学Java Swing同学学习使用. import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import jav

Java GUI制作简单的管理系统

本文实例为大家分享了Java GUI管理系统的具体代码,供大家参考,具体内容如下 1.先完成主页面MainUI(代码如下) package com.pag_1; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class MainUI extends JFrame implements ActionLis

Java语言实现简单FTP软件 FTP软件主界面(4)

首先看一下FTP软件的整体代码框架,具体内容如下 1.首先介绍程序的主入口FTPMain.java,采用了一个漂亮的外观风格 package com.oyp.ftp; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.UIManager; import com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel; public class F

Java编程Iterator迭代器设计原理及实现代码示例

我们知道迭代器(Iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素.那么Iterator迭代器的设计原理是什么呢?迭代器问什么定义了一个借口,而不是一个类呢? 我们假设迭代器迭代数据的功能定义为了一个类,那么,会有这样的问题.不同的集合,由于数据结构不一样,所以他们的存储方式也是不一样的.也就是说,迭代器获取的时候,获取的方式是变化的,也就是不固定的.所以把这种方式定义为具体的实现是不合理的. 无论何种集合,他们肯定都有获取的功能,而且不知道什么时候就没有数据了.所有他

Java图形化界面设计之容器(JFrame)详解

Java图形化界面设计--容器(JFrame) 程序是为了方便用户使用的,因此实现图形化界面的程序编写是所有编程语言发展的必然趋势,在命令提示符下运行的程序可以让我们了解java程序的基本知识体系结构,现在就进入java图形化界面编程. 一.Java基本类(JFC) Java基本类("JavaFoundationClasses",JFC),由一些软件包组成.这些软件包主要包括下面一些应用程序接口(API): ·抽象窗口工具集(AWT)(1.1及以上版本). ·Swing构件. ·Jav

C语言学生成绩管理系统小设计

本文实例为大家分享了C语言学生成绩管理系统的具体代码,供大家参考,具体内容如下 一.本设计涉及的重要C语言知识有: 1.单链表的各种操作 2.文件流的操作 3.单链表的排序 二.本设计主要以下几个模块组成 1.学生成绩添加模块 2.学生成绩删除模块 3.学生成绩修改模块 4.学生成绩检索模块 5.学生成绩显示模块(包括成绩排序) 6.学生成绩保存模块 效果图: 本设计大概5.6百行代码左右,通过这个设计,本人感觉C语言熟练了很多, 希望能对像我一样的C语言菜鸟同学会有点帮助,废话少说,咱们上代码

C语言学生成绩管理系统课程设计

学生成绩管理系统是比较适合初学者的.它涵盖了c语言几乎知识.对于学了c语言的人,把这个课程设计搞好(当然自己能设计出来是要有很好的基础).不管自己能不能够完成,最重要的是能弄懂.参考其他资料,试着自己编写是不错的选择.这个课程设计也是我参照资料,自己编写的.自己适当地增加了一些功能.不过,编的不够那么专业吧. #include<stdio.h> #include<string.h> #include<stdlib.h> #define size 100 char* cl

Java实现的简单掷骰子游戏示例

本文实例讲述了Java实现的简单掷骰子游戏.分享给大家供大家参考,具体如下: 要求: 掷两个骰子,每个骰子有六面, 分别为1.2.3.4.5.6.检查这两个骰子的和. 如果为2.3或12你就输了:如果和是7或者11你就赢了. 但如果和是其他数字(例如4.5.6.8.9或者10), 就确定了一个点.继续掷骰子直至抛出一个7或者 掷出和刚才相同的点数.如果掷出的是7,你就输了. 如果掷出的点数和你前一次掷出的点数相同, 你就赢了. java实现代码: enum Status { Win, Lose,

Java注解处理器简单实例

如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了.使用注解的过程中,很重要的一部分就是创建于使用注解处理器.JavaSE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器. 注解处理器类库(java.lang.reflect.AnnotatedElement): Java使用Annotation接口来代表程序元素前面的注解,该接口是所有Annotation类型的父接口.除此之外,Java在java.lang.reflect包下新增了AnnotatedElement