java实现科研信息管理系统

一、前言

本学期学习了JAVA语言,在学期的结束,写一个有操作界面,与数据库关联的管理系统,用来巩固自己本学习所学的知识。
用到的知识:JAVA基础,JAVA界面设计(GUI),Oracle数据库(需要掌握数据库的基本操作语句),链接数据库。
使用的开发工具:MyEclipse Professional 2014

二、设计

我们管理的属性有:项目编号,项目名称,参与人员,负责人,项目开始时间,结束时间。科研项目系统主要有四个功能,对科研项目的增加、删除、修改、查询。以及为增加系统安全性所设计的登陆模式。

2.1 增加:向数据库的表中增加科研项目的所有信息

 

添加后在控制台使用SQL语句查找,验证是否已添加至数据库中。

2.2 查询:通过具有唯一性的项目编号查找该项目的所有信息

2.3 修改:根据项目编号选中要修改的项目,并重新输入项目信息进行修改

2.4 删除:通过具有唯一性的项目编号删除对应项目的所有信息

三、窗体源码

3.1 登录界面

package 科研信息管理系统;

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

import javax.swing.*;

public class LoginWindows extends Frame implements WindowListener,ActionListener 
{
 public Label lgLabel; //用户名标签
 public Label pwdLabel; //密码标签
 public TextField lgText; //用户名文本框
 public TextField pwdText; //密码文本框
 public Button lgBt;   //登录按钮
 public Button quitBt;  //退出按钮

  public LoginWindows()
  {
   super();
   this.setSize(400, 300);
   this.setTitle("科研信息管理系统");
   this.setLayout(null);

   lgLabel=new Label();
   lgLabel.setText("登录账号:");
   lgLabel.setSize(60, 30);
   lgLabel.setLocation(70,70);

   pwdLabel=new Label();
   pwdLabel.setText("密  码:");
   pwdLabel.setSize(60,30);
   pwdLabel.setLocation(70, 150);

   lgText=new TextField();
   lgText.setSize(180, 30);
   lgText.setLocation(140, 70);

   pwdText=new TextField();
   pwdText.setSize(180,30);
   pwdText.setLocation(140, 150);

   lgBt=new Button();
   lgBt.setLabel("登录");
   lgBt.setSize(60,30);
   lgBt.setLocation(120, 220);

   quitBt=new Button();
   quitBt.setLabel("退出");
   quitBt.setSize(60,30);
   quitBt.setLocation(220,220);
   quitBt.addActionListener(this);
   lgBt.addActionListener(this);
   this.addWindowListener(this);

   this.add(lgLabel);
   this.add(pwdLabel);
   this.add(lgText);
   this.add(pwdText);
   this.add(lgBt);
   this.add(quitBt);
   this.setVisible(true);

  }
  public static void main(String args[])
  {
   LoginWindows main=new LoginWindows();

  }
 @Override
 public void actionPerformed(ActionEvent e) {

  Button bt=(Button) e.getSource();
  if(bt.getLabel().equals("退出"))
  {
   System.exit(0);
  }
  else {
  if ((lgText.getText().equals(""))||(pwdText.getText().equals(""))) 
   {
    JOptionPane.showMessageDialog(this,"账号或密码为空");
   }
   else
   {
     if ((lgText.getText().equals("admin"))&&(pwdText.getText().equals("111"))) 
   //if((lgText.getText().equals(""))||(pwdText.getText().equals("")))
    {
     this.setVisible(false);
    // Sqlwindow sql=new Sqlwindow();
     WindowsView w=new WindowsView();
     w.SciencePro();

    }
    else {
     JOptionPane.showMessageDialog(this, "没有权限");
    }
   }}}






 @Override
 public void windowOpened(WindowEvent e) {
  // TODO Auto-generated method busb

 }

 @Override
 public void windowClosing(WindowEvent e) {
  // TODO Auto-generated method busb
  System.exit(0);
 }

 @Override
 public void windowClosed(WindowEvent e) {
  // TODO Auto-generated method busb

 }

 @Override
 public void windowIconified(WindowEvent e) {
  // TODO Auto-generated method busb

 }

 @Override
 public void windowDeiconified(WindowEvent e) {
  // TODO Auto-generated method busb

 }

 @Override
 public void windowActivated(WindowEvent e) {
  // TODO Auto-generated method busb

 }

 @Override
 public void windowDeactivated(WindowEvent e) {
  // TODO Auto-generated method busb

 }
}

3.2主窗体源码

package 科研信息管理系统;
import javax.swing.*;

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

import javax.swing.event.*;
import javax.swing.tree.*;

public class WindowsView implements TreeSelectionListener,ActionListener //窗口类
{
 JFrame main;
 JPanel leftPa;
 JPanel upPa;
 JPanel downPa;

 ///查询用控件
 JLabel numLa; //通过项目编号查询
 JTextField numTxt;
 JButton numBt;

 JTextField nameTxt; //显示项目名称的文本框
 JTextField peopleTxt; //显示参与人员
 JTextField principalTxt; //显示主要负责人
 JTextField timeStartTxt; //显示开始时间的文本框
 JTextField timeEndTxt; //显示预期结束时间的文本框

 //增加用控件
 JLabel anumLa; 
 JLabel anameLa;
 JLabel apeopleLa;
 JLabel aprincipalLa;
 JLabel atimeStartLa;
 JLabel atimeEndLa;

 JTextField anumTxt;
 JTextField anameTxt;
 JTextField apeopleTxt;
 JTextField aprincipalTxt;
 JTextField atimeStartTxt;
 JTextField atimeEndTxt;
 JButton addBt;
 JTable showTable;

 //删除用控件
 JLabel dnumLa; 
 JButton dnumBt;
 JTextField dnumTxt;

 //修改用控件
 JLabel alnumLa; 
 JTextField allnumTxt;
 JButton alseBt;
 JButton alBt;

 JLabel allnumLa; 
 JLabel alnameLa;
 JLabel alpeopleLa;
 JLabel alprincipalLa;
 JLabel altimeStartLa;
 JLabel altimeEndLa;
 JTextField alnumTxt;
 JTextField alnameTxt;
 JTextField alpeopleTxt;
 JTextField alprincipalTxt;
 JTextField altimeStartTxt;
 JTextField altimeEndTxt;

 public void SciencePro()
 {
  main=new JFrame();
  main.setSize(800,800);
  main.setTitle("科研信息管理");
  main.setLayout(null);


  leftPa=new JPanel();
  leftPa.setSize(150, 600);
  leftPa.setLocation(0, 0);
  leftPa.setBackground(Color.white);
  initLeftPanel();
  main.add(leftPa);

  upPa=new JPanel();
  upPa.setSize(650, 400);
  upPa.setLocation(150, 0);
  upPa.setBackground(Color.gray);
  main.add(upPa);

  downPa=new JPanel();
  downPa.setSize(650, 400);
  downPa.setLocation(150, 400);
  downPa.setBackground(Color.orange);
  main.add(downPa);


  main.setVisible(true);
 }

 private void initLeftPanel()
 {
  String[] strs={"查询","增加","删除","修改"};
  JTree tree=new JTree(strs);
  tree.addTreeSelectionListener(this);
  leftPa.add(tree);
 }

 public void valueChanged(TreeSelectionEvent e)
 {
  JTree tree=(JTree)e.getSource();
  DefaultMutableTreeNode selectionNode =(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
  String str=selectionNode.toString();
  if(str.equals("查询"))
  {
   initUpDownPaWhenSearch();
  }
  if(str.equals("增加"))
  {
   initUpDownPaWhenAdd();
  }
  if(str.equals("删除"))
  {
   initUpDownPaWhenDelete();
  }
  if(str.equals("修改"))
  {
   initUpDownPaWhenAlert();
  }
 }

 private void initUpDownPaWhenSearch()
 {
  //清空上下面板上的控件
  upPa.removeAll();
  downPa.removeAll();
  //动态的加载上面板的控件
  upPa.setLayout(null);
  numLa=new JLabel();
  numLa.setText("请输入项目编号");
  numLa.setLocation(40, 60);
  numLa.setSize(100, 40);


  numTxt=new JTextField();
  numTxt.setLocation(180, 60);
  numTxt.setSize(200, 30);


  numBt=new JButton();
  numBt.setText("查询");
  numBt.addActionListener(this);
  numBt.setLocation(250, 160);
  numBt.setSize(60, 30);
  upPa.add(numLa);
  upPa.add(numTxt);
  upPa.add(numBt);
  upPa.validate();
  upPa.repaint();
  numBt.addActionListener(this);
  //动态的加载下面板的控件

  nameTxt=new JTextField();
  nameTxt.setLocation(80, 50);
  nameTxt.setSize(300, 30);

  peopleTxt=new JTextField();
  peopleTxt.setLocation(80, 100);
  peopleTxt.setSize(300, 30);

  principalTxt=new JTextField();
  principalTxt.setLocation(80, 150);
  principalTxt.setSize(300, 30);

  timeStartTxt=new JTextField();
  timeStartTxt.setLocation(80, 200);
  timeStartTxt.setSize(300, 30);

  timeEndTxt=new JTextField();
  timeEndTxt.setLocation(80,250);
  timeEndTxt.setSize(300, 30);

  downPa.setLayout(null);
  downPa.add(nameTxt);
  downPa.add(peopleTxt);
  downPa.add(principalTxt);
  downPa.add(timeStartTxt);
  downPa.add(timeEndTxt);
  downPa.validate();
  downPa.repaint();

 }

 public void actionPerformed(ActionEvent e)
 {
  JButton bt=(JButton)e.getSource();
  //bt.addActionListener(this);
  if(bt.getText().equals("查询"))
  {
   if(numTxt.getText().equals(""))
   {
    JOptionPane.showMessageDialog(null, "请输入项目编号");
   }
   else
   {
    DealSearch deal=new DealSearch();
    String inf=deal.findProByNum(Integer.parseInt(numTxt.getText().trim()));
    if((inf!=null)&&(!inf.equals("")))
    {
     String[] strs=inf.split(",");
     nameTxt.setText(strs[1]);
     peopleTxt.setText(strs[2]);
     principalTxt.setText(strs[3]);
     timeStartTxt.setText(strs[4]);
     timeEndTxt.setText(strs[5]);
    }
   }
  }
  if(bt.getText().equals("新增"))
  {
   if (anumTxt.getText().equals("")||anameTxt.getText().equals("")||apeopleTxt.getText().equals("")||aprincipalTxt.getText().equals("")||atimeStartTxt.getText().equals("")||atimeEndTxt.getText().equals(""))
   {
    JOptionPane.showMessageDialog(null, "输入中不能有空值!!");
   }
   else
   {
    ScienceProject s=new ScienceProject();
    s.SetNum(Integer.parseInt(anumTxt.getText()));
    s.SetName(anameTxt.getText());
    s.SetPeople(apeopleTxt.getText());
    s.SetLeader(aprincipalTxt.getText());
    s.SetTimeStart(atimeStartTxt.getText());
    s.SetTimeFinish(atimeEndTxt.getText());
    DealAdd deal=new DealAdd();
    deal.add(s);
   }
  }
  if(bt.getText().equals("删除"))
  {
   if(Integer.parseInt(dnumTxt.getText())==0)
   {
    JOptionPane.showMessageDialog(null, "不能删除空的项目编号!!");
   }
   else
   {
    DealDelete deal=new DealDelete();
    deal.delete(Integer.parseInt(dnumTxt.getText().trim()));
   }
  }
  if(bt.getText().equals("提交"))
  {
   if(Integer.parseInt(allnumTxt.getText())==0)
   {
    JOptionPane.showMessageDialog(null, "不能修改空的项目编号!!");
   }
   else
   {
    DealSub deal=new DealSub();
    deal.submit(Integer.parseInt(allnumTxt.getText()));
   }
  }
  if(bt.getText().equals("修改"))
  {
   if (alnameTxt.getText().equals("")||alpeopleTxt.getText().equals("")||alprincipalTxt.getText().equals("")||altimeStartTxt.getText().equals("")||altimeEndTxt.getText().equals(""))
   {
    JOptionPane.showMessageDialog(null, "输入中不能有空值!!");
   }
   else
   {
    ScienceProject s=new ScienceProject();
    s.SetNum(Integer.parseInt(allnumTxt.getText()));

    s.SetName(alnameTxt.getText());
    s.SetPeople(alpeopleTxt.getText());
    s.SetLeader(alprincipalTxt.getText());
    s.SetTimeStart(altimeStartTxt.getText());
    s.SetTimeFinish(altimeEndTxt.getText());
    DealAlter deal=new DealAlter();
    deal.alter(s);
   }
  }
 }

 private void initUpDownPaWhenAdd()
 {
  //清空上下面板上的控件
  upPa.removeAll();
  downPa.removeAll();
  //动态的加载上面板的控件
  upPa.setLayout(null);

  anumLa=new JLabel();
  anumLa.setText("请输入要增加的项目编号");
  anumLa.setLocation(30, 50);
  anumLa.setSize(150, 40);

  anumTxt=new JTextField();
  anumTxt.setLocation(200, 50);
  anumTxt.setSize(250, 30);

  anameLa=new JLabel();
  anameLa.setText("请输入要增加的项目名称");
  anameLa.setLocation(30, 100);
  anameLa.setSize(150, 40);

  anameTxt=new JTextField();
  anameTxt.setLocation(200, 100);
  anameTxt.setSize(250, 30);

  apeopleLa=new JLabel();
  apeopleLa.setText("请输入项目参与人员");
  apeopleLa.setLocation(30, 150);
  apeopleLa.setSize(150, 40);

  apeopleTxt=new JTextField();
  apeopleTxt.setLocation(200, 150);
  apeopleTxt.setSize(250, 30);

  aprincipalLa=new JLabel();
  aprincipalLa.setText("请输入项目负责人");
  aprincipalLa.setLocation(30, 200);
  aprincipalLa.setSize(150, 40);

  aprincipalTxt=new JTextField();
  aprincipalTxt.setLocation(200, 200);
  aprincipalTxt.setSize(250, 30);

  atimeStartLa=new JLabel();
  atimeStartLa.setText("请输入项目开始时间");
  atimeStartLa.setLocation(30, 250);
  atimeStartLa.setSize(150, 40);

  atimeStartTxt=new JTextField();
  atimeStartTxt.setLocation(200, 250);
  atimeStartTxt.setSize(250, 30);

  atimeEndLa=new JLabel();
  atimeEndLa.setText("请输入项目结束时间");
  atimeEndLa.setLocation(30, 300);
  atimeEndLa.setSize(150, 40);

  atimeEndTxt=new JTextField();
  atimeEndTxt.setLocation(200, 300);
  atimeEndTxt.setSize(250, 30);

  addBt=new JButton();
  addBt.setText("新增");
  addBt.addActionListener(this);
  //addBt.addMouseListener(this);
  addBt.setLocation(250, 340);
  addBt.setSize(60, 30);

  upPa.add(addBt);
  upPa.add(anumLa);
  upPa.add(anameLa);
  upPa.add(apeopleLa);
  upPa.add(aprincipalLa);
  upPa.add(atimeStartLa);
  upPa.add(atimeEndLa);
  upPa.add(anameTxt);
  upPa.add(anumTxt);
  upPa.add(apeopleTxt);
  upPa.add(aprincipalTxt);
  upPa.add(atimeStartTxt);
  upPa.add(atimeEndTxt);
  upPa.validate();
  upPa.repaint();

  downPa.validate();
  downPa.repaint();
 }

 private void initUpDownPaWhenDelete()
 {
  //清空上下面板上的控件
  upPa.removeAll();
  downPa.removeAll();
  //动态的加载上面板的控件
  upPa.setLayout(null);
  numLa=new JLabel();
  numLa.setText("请输入要删除的项目编号");
  numLa.setLocation(40, 60);
  numLa.setSize(150, 40);

  dnumTxt=new JTextField();
  dnumTxt.setLocation(200, 60);
  dnumTxt.setSize(250, 30);

  dnumBt=new JButton();
  dnumBt.setText("删除");
  dnumBt.addActionListener(this);
  dnumBt.setLocation(270, 170);
  dnumBt.setSize(60, 30);

  upPa.add(numLa);
  upPa.add(dnumTxt);
  upPa.add(dnumBt);
  upPa.validate();
  upPa.repaint();

  downPa.validate();
  downPa.repaint();
 }

 private void initUpDownPaWhenAlert()
 {
  //清空上下面板上的控件
  upPa.removeAll();
  downPa.removeAll();
  //动态的加载上面板的控件
  upPa.setLayout(null);
  alnumLa=new JLabel();
  alnumLa.setText("请输入要修改的项目编号");
  alnumLa.setLocation(40, 60);
  alnumLa.setSize(150, 40);

  alseBt=new JButton();
  alseBt.setText("提交");
  alseBt.addActionListener(this);
  alseBt.setLocation(270, 170);
  alseBt.setSize(60, 30);

  allnumTxt=new JTextField();
  allnumTxt.setLocation(200, 60);
  allnumTxt.setSize(200, 30);

  upPa.add(alnumLa);
  upPa.add(alseBt);
  upPa.add(allnumTxt);
  upPa.validate();
  upPa.repaint();

  alBt=new JButton();
  alBt.setText("修改");
  alBt.addActionListener(this);
  alBt.setLocation(450, 170);
  alBt.setSize(60, 30);

 /*  allnumLa=new JLabel();
  allnumLa.setText("请输入修改后的项目编号");
  allnumLa.setLocation(30, 00);
  allnumLa.setSize(150, 40);

  alnumTxt=new JTextField();
  alnumTxt.setLocation(180, 00);
  alnumTxt.setSize(250, 30);*/

  alnameLa=new JLabel();
  alnameLa.setText("请输入修改后项目名称");
  alnameLa.setLocation(30, 50);
  alnameLa.setSize(150, 40);

  alnameTxt=new JTextField();
  alnameTxt.setLocation(180, 50);
  alnameTxt.setSize(250, 30);

  alpeopleLa=new JLabel();
  alpeopleLa.setText("请重设参与人员");
  alpeopleLa.setLocation(30, 100);
  alpeopleLa.setSize(150, 40);

  alpeopleTxt=new JTextField();
  alpeopleTxt.setLocation(180, 100);
  alpeopleTxt.setSize(250, 30);

  alprincipalLa=new JLabel();
  alprincipalLa.setText("请重设项目负责人");
  alprincipalLa.setLocation(30, 150);
  alprincipalLa.setSize(150, 40);

  alprincipalTxt=new JTextField();
  alprincipalTxt.setLocation(180, 150);
  alprincipalTxt.setSize(250, 30);

  altimeStartLa=new JLabel();
  altimeStartLa.setText("请重设项目开始时间");
  altimeStartLa.setLocation(30, 200);
  altimeStartLa.setSize(150, 40);

  altimeStartTxt=new JTextField();
  altimeStartTxt.setLocation(180, 200);
  altimeStartTxt.setSize(250, 30);

  altimeEndLa=new JLabel();
  altimeEndLa.setText("请重设项目结束时间");
  altimeEndLa.setLocation(30, 250);
  altimeEndLa.setSize(150, 40);

  altimeEndTxt=new JTextField();
  altimeEndTxt.setLocation(180, 250);
  altimeEndTxt.setSize(250, 30);
  downPa.add(alBt);
  //downPa.add(allnumLa);
  downPa.add(alnameLa);
  downPa.add(alpeopleLa);
  downPa.add(alprincipalLa);
  downPa.add(altimeStartLa);
  downPa.add(altimeEndLa);
  downPa.add(alnameTxt);
  //downPa.add(alnumTxt);
  downPa.add(alpeopleTxt);
  downPa.add(alprincipalTxt);
  downPa.add(altimeStartTxt);
  downPa.add(altimeEndTxt);
  downPa.setLayout(null);
  downPa.validate();
  downPa.repaint();
 }
}

3.3 组织SQL语句,链接数据库部分

package 科研信息管理系统;
import java.sql.*;
import java.util.Scanner;

public class Sql {
 public void AddScienceProject(ScienceProject scienceProject)
 {
  try
  {
   Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
   String conStr="jdbc:oracle:thin:@localhost:1521:XE";
   Connection con=DriverManager.getConnection(conStr,"system","1");
   StringBuffer sql=new StringBuffer("insert into science values("+scienceProject.GetNum()+",'"+scienceProject.GetName()+"','"+scienceProject.GetPeople()+"','"+scienceProject.GetLeader()+"','"+scienceProject.GetTimeStart()+"','"+scienceProject.GetTimeFinish()+"')");

   Statement st=con.createStatement();
   st.execute(sql.toString());
   st.close();
   con.close(); 
  } 
  catch (Exception e) 
  {
  // TODO: handle exception

  System.out.println(e.toString());
  }
 }
 public void DelScienceProject(ScienceProject scienceProject)
 {
  try 
  {
  Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
  String conStr="jdbc:oracle:thin:@localhost:1521:XE";
  Connection con=DriverManager.getConnection(conStr,"system","1");
  StringBuffer sql=new StringBuffer("delete from science where num="+scienceProject.GetNum()+""); 
  Statement st=con.createStatement();
  st.execute(sql.toString());
  st.close();
  con.close();
  } 
  catch (Exception e) 
  {
  // TODO: handle exception
  System.out.println(e.toString());
  }

 }
 public void UpdScienceProject(ScienceProject scienceProject)
 {
  try 
  {
  Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 
  String conStr="jdbc:oracle:thin:@localhost:1521:XE";
  Connection con=DriverManager.getConnection(conStr,"system","1");
  StringBuffer sql =new StringBuffer("update science set name='"+scienceProject.GetName()+"',workpeople='"+scienceProject.GetPeople()+"',manager='"+scienceProject.GetLeader()+"',timestart='"+scienceProject.GetTimeStart()+"',timeend='"+scienceProject.GetTimeFinish()+"' where num="+scienceProject.GetNum()+"");
  Statement st=con.createStatement();
  st.execute(sql.toString());
  st.close();
  con.close();
  }
  catch (Exception e) 
  {
  // TODO: handle exception
   System.out.println("修改异常");
  System.out.println(e.toString());
  }
 }
 public ScienceProject Findbynum(int num)
 {
  ScienceProject scienceProject=new ScienceProject();
  try 
  {
   Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
   String conStr="jdbc:oracle:thin:@localhost:1521:XE";
   Connection con=DriverManager.getConnection(conStr,"system","1");
   StringBuffer sql=new StringBuffer("select * from science where num="+num+"");
   Statement st=con.createStatement();
   ResultSet rs=st.executeQuery(sql.toString());
   while(rs.next())
   {
    scienceProject.SetNum(rs.getInt(1));
    scienceProject.SetName(rs.getString(2));
    scienceProject.SetPeople(rs.getString(3));
    scienceProject.SetLeader(rs.getString(4));
    scienceProject.SetTimeStart(rs.getString(5));
    scienceProject.SetTimeFinish(rs.getString(6));
   }
   st.close();
   con.close();
  } 
  catch (Exception e) {
  // TODO: handle exception
  System.out.println(e.toString());
  }
 return scienceProject; 
 }
 public ScienceProject Look()
 {
  ScienceProject scienceProject=new ScienceProject();
  try
   {
   Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
   String conStr="jdbc:oracle:thin:@localhost:1521:XE";
   Connection con=DriverManager.getConnection(conStr,"system","1");
   StringBuffer sql=new StringBuffer("select *from science");
   Statement st=con.createStatement();
   ResultSet rs=st.executeQuery(sql.toString());
   while(rs.next())
   { 
    scienceProject.SetNum(rs.getInt(1));
    scienceProject.SetName(rs.getString(2));
    scienceProject.SetPeople(rs.getString(3));
    scienceProject.SetLeader(rs.getString(4));
    scienceProject.SetTimeStart(rs.getString(5));
    scienceProject.SetTimeFinish(rs.getString(6));
   }
   st.close();
   con.close();
 } 
  catch (Exception ex) 
  {
  // TODO: handle exception
  System.out.println(ex.toString());
  }
 return scienceProject;
 }
 public static void main(String args[])
 {

 }
}

3.4 增删查改对应处理的源码

//处理增加
package 科研信息管理系统;

import javax.swing.JOptionPane;

public class DealAdd 
{
 public DealAdd()
 {}
 public void add(ScienceProject s)
 {
  Sql sql=new Sql();
  if(sql.Findbynum(s.GetNum()).GetNum()!=0)
  {
   JOptionPane.showMessageDialog(null, "该项目已存在,请重新输入!");
  }
  else
  {

   sql.AddScienceProject(s);
   JOptionPane.showMessageDialog(null,"增加成功");
  }
 }
}

由设计部分可以看到,删除时需要先提交项目编号,所以,需要处理提交事件

//处理提交
package 科研信息管理系统;

import javax.swing.JOptionPane;

public class DealSub
{
 DealSub()
 {}
 public void submit(int num)
 {
  Sql sql =new Sql();
  if(sql.Findbynum(num).GetNum()==0)
  {
   JOptionPane.showMessageDialog(null, "不存在该项目");
  }
  else
  {
   JOptionPane.showMessageDialog(null, "请在下方填写修改后的项目信息");
  }
 }
}
//处理删除
package 科研信息管理系统;

import javax.swing.JOptionPane;

public class DealDelete
{
 public DealDelete()
 {}
 public void delete(int num)
 {
  ScienceProject s=new ScienceProject();
  Sql sql=new Sql();
  if(sql.Findbynum(num).GetNum()==0)
  {
   JOptionPane.showMessageDialog(null, "不存在该项目~");
  }
  else
  {
   s=sql.Findbynum(num);
   sql.DelScienceProject(s);
   JOptionPane.showMessageDialog(null, "删除成功~");
  }
 }
}
//处理修改
package 科研信息管理系统;

import javax.swing.JOptionPane;

public class DealAlter 
{
 public DealAlter()
 {}
 public void alter(ScienceProject s)
 {
  Sql sql=new Sql();
  sql.UpdScienceProject(s);
  JOptionPane.showMessageDialog(null,"修改成功");
 }
}
//处理查询
package 科研信息管理系统;

public class DealSearch //处理查询事件
{
 public DealSearch() 
 {}
 public String findProByNum(int num)//通过项目编号查询
 {
  String result="";
  ScienceProject s=new ScienceProject();
  Sql sql=new Sql();
  s=sql.Findbynum(num);
  result=s.GetNum()+","+s.GetName()+","+s.GetPeople()+","+s.GetLeader()+","+s.GetTimeStart()+","+s.GetTimeFinish();
  return result;
 }
}


3.5 主函数调用登录窗口

package 科研信息管理系统;

public class Test {

 public static void main(String[] args)
 {
  LoginWindows v=new LoginWindows();

 }

}

四、总结

还是有一些的缺陷存在的,由于对科研项目的不熟悉,有些属性设计得不合理,还有很多没有考虑到的地方,另外对GUI的不熟悉也限制了我们在窗口上的设计。还需要在项目属性及窗口等方面进行修改。

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

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。