GUI+Mysql 仿照水果超市实现简易学生管理系统

数据库课程设计—超市零售信息管理系统(Python实现) 数据库课程设计 超市零售信息管理系统(Python实现)SQLServer 文章目录数据库课程设计前言(一)设计目的(二)设计内容一、需求分析(一)设计概念(二)功能说明1. 进货管理2. 销售管理3. 库存管理4.人员管理(三)功能模块图二、概念结构设计三、逻辑结构设计四、代码实现(一)实现Python 连接 SQL Severe 数据库(二)创建数据库表(三)插入数据(四)创建界面按钮,并实现数据库的“增删改查”五、总结 前言 (一)设计目的 学生根据所学的数据库系统原理与程序设计的知识,能够针对一个 阅读详情

GUI+Mysql 仿照水果超市实现学生管理系统!

	**当我们学习完到GUI界面和JDBC的时候,就可以实现一些简单的小程序的。

下面是一个仿照水果超市实现学生管理系统的介绍,由一个主类实现。**
首先,他的具体功能。
界面中包含有表格(用于显示全部学生信息)、文本输入框(输入学号、姓名等内容)、单选按钮(性别)、下拉列表框(可选专业、年级等内容)、对话框和相关功能按钮:
(1)程序开始运行时,除表格有内容(内容从数据库中读取),界面上的【添加】按钮生效,【修改】和【删除】按钮失效,其余控件(如文本框或单选按钮等)内容为空。
(2)当在文本框等控件输入信息后,按下【添加】按钮,判断所填信息是否完整,如是则将所填内容添加到数据库中,并更新表格内容。
(3)当双击表格中的任何一条记录时,该条记录的各项内容在表格下方对应的控件显示,此时【添加】按钮失效,【修改】和【删除】按钮生效。
(4)当按下【修改】按钮时,该条学生记录的信息进行更改,表格中的内容刷新,数据库中该条记录被修改,同时弹出“记录修改成功!”的提示对话框。
(5)当按下【删除】按钮时,则将该条学生记录的信息删除,表格中的内容更新,数据库中该条记录被删除,同时弹出“记录删除成功!”的提示对话框。
(6)有菜单栏实现,按使表格信息按不同关键字进行排序。
如下图在这里插入图片描述

**废话不多说,下面是主界面代码。**
import java.awt.Font;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import java.awt.event.*;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Vector;

public class StudentFrame extends JFrame {
	private static final long serialVersionUID = 1L;
	private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
	private static final String DB_URL = "jdbc:mysql://localhost:3306/"数据库名"?serverTimezone=GMT&&useSSL=false";
	private static final String USER = "";//用户名
	private static final String PASS = "";//密码
	
	private String MIDItem = "";
	private String sqlE="select *from TStudent order by stuid;";
	private String sql="SELECT *FROM tstudent";
	private String sqlA = "insert into tstudent(stuid,stuname,stusex,stugrade,stuclass,stupro)values(?,?,?,?,?,?)";
	String sqlD = "DELETE FROM tstudent WHERE stuid='";
	
	private Connection conn = null;
	private ResultSet res = null;
	private Statement stat = null;
	private PreparedStatement ps = null;
	
	private JLabel tableLabel = new JLabel("学生列表");// 标签
	private JScrollPane tablePane = new JScrollPane();
	private TableModel datastu1;
	private JTable table = new JTable(datastu1) { // 表格可选中,不可改
		private static final long serialVersionUID = 1L;
		public boolean isCellEditable(int rowIndex, int ColIndex) {
			return false;
		}
	};
	
	// 提示标签
	private JLabel stuid = new JLabel("学号");
	private JLabel stuname = new JLabel("姓名");
	private JLabel stusex = new JLabel("性别");
	private JLabel stugrade = new JLabel("年级");
	private JLabel stuclass = new JLabel("班级");
	private JLabel stupro = new JLabel("专业");
	
	// 文本框
	private JTextField AddID = new JTextField(10);
	private JTextField Addname = new JTextField(6);
	private JTextField ChangeID = new JTextField(10);
	private JTextField Changename = new JTextField(6);
	private JTextField DeleteID = new JTextField(10);
	
	// 单选框
	private JPanel jpanel1 = new JPanel();
	private JPanel jpanel2 = new JPanel();
	private JRadioButton man1 = new JRadioButton("男");
	private JRadioButton women1 = new JRadioButton("女");
	private JRadioButton man2 = new JRadioButton("男");
	private JRadioButton women2 = new JRadioButton("女");
	private ButtonGroup Addsex = new ButtonGroup();
	private ButtonGroup Changesex = new ButtonGroup();
	
	// 组合框
	private JComboBox<String> Addgrade = new JComboBox<String>();
	private JComboBox<String> Addclass = new JComboBox<String>();
	private JComboBox<String> Addpro = new JComboBox<String>();
	private JComboBox<String> Changegrade = new JComboBox<String>();
	private JComboBox<String> Changeclass = new JComboBox<String>();
	private JComboBox<String> Changepro = new JComboBox<String>();
	
	// 按钮
	private JButton Add = new JButton("增加");
	private JButton Change = new JButton("修改");
	private JButton Delete = new JButton("删除");
	
	//菜单
	JMenuBar mainMenu = new JMenuBar();//创建菜单栏对象
	
	JMenu RefreshMenu = new JMenu("刷新");// 创建菜单对象
	JMenu HelpMenu = new JMenu("帮助");
	JMenu ExitMenu = new JMenu("退出");
	
	JMenuItem SortID=new JMenuItem("按学号");//创建子菜单对象
	JMenuItem SortName=new JMenuItem("按名字");
	JMenuItem SortSex=new JMenuItem("按性别");
	JMenuItem SortGrade=new JMenuItem("按年级");
	JMenuItem SortClass=new JMenuItem("按班级");
	JMenuItem SortPro=new JMenuItem("按专业");
	JMenuItem help=new JMenuItem("help");
	JMenuItem About=new JMenuItem("关于");
	
	
	public StudentFrame() {
		super();
		this.init();
		this.addComponent();
		this.addListener();
		this.setJMenuBar(mainMenu);//加载
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		queryStuItem();
	}

	private void init() {
		this.setTitle("学生管理页面");
		this.setSize(600, 450);
		GUITools.center(this);
		this.setResizable(false);
		
	}

	// 组件加载
	private void addComponent() {
		/*
		 * 菜单
		 * */
		mainMenu.add(RefreshMenu);
		mainMenu.add(HelpMenu);
		mainMenu.add(ExitMenu);
		RefreshMenu.add(SortID);
		RefreshMenu.add(SortName);
		RefreshMenu.add(SortSex);
		RefreshMenu.add(SortGrade);
		RefreshMenu.add(SortClass);
		RefreshMenu.add(SortPro);
		HelpMenu.add(help);
		HelpMenu.add(About);
		/*
		 * 表格处理
		 */
		this.setLayout(null);
		tableLabel.setBounds(265, 0, 70, 40);
		this.add(tableLabel);
		table.getTableHeader().setReorderingAllowed(false);// 列不能移动
		table.getTableHeader().setResizingAllowed(false);// 行不能移动
		// table.setEnabled(false);// 不可更改数据
		tablePane.setBounds(30, 30, 530, 220);
		tablePane.setViewportView(table);// 视口装入表格
		this.add(tablePane);
		/*
		 * 标签提示
		 */
		stuid.setBounds(20, 250, 70, 25);
		stuname.setBounds(100, 250, 70, 25);
		stusex.setBounds(180, 250, 70, 25);
		stugrade.setBounds(260, 250, 70, 25);
		stuclass.setBounds(340, 250, 70, 25);
		stupro.setBounds(420, 250, 70, 25);
		this.add(stuid);
		this.add(stuname);
		this.add(stusex);
		this.add(stugrade);
		this.add(stuclass);
		this.add(stupro);
		/*
		 * 文本框
		 */
		AddID.setBounds(10, 280, 60, 20);
		Addname.setBounds(85, 280, 60, 20);
		ChangeID.setBounds(10, 315, 60, 20);
		Changename.setBounds(85, 315, 60, 20);
		DeleteID.setBounds(10, 350, 60, 20);
		this.add(AddID);
		this.add(Addname);
		this.add(ChangeID);
		this.add(Changename);
		this.add(DeleteID);
		/*
		 * 单选框
		 */
		jpanel1.add(man1);
		jpanel1.add(women1);
		Addsex.add(man1);
		Addsex.add(women1);
		jpanel1.setBounds(155, 270, 90, 30);
		this.add(jpanel1);

		jpanel2.add(man2);
		jpanel2.add(women2);
		Changesex.add(man2);
		Changesex.add(women2);
		jpanel2.setBounds(155, 305, 90, 30);
		this.add(jpanel2);
		/*
		 * 组合框
		 */
		Addgrade.setBounds(250, 280, 60, 20);
		Addgrade.addItem("年级");
		Addgrade.addItem("2020");
		Addgrade.addItem("2021");

		Addclass.setBounds(320, 280, 60, 20);
		Addclass.addItem("班级");
		Addclass.addItem("1");
		Addclass.addItem("2");
		Addclass.addItem("3");
		Addclass.addItem("4");

		Addpro.setBounds(390, 280, 70, 20);
		Addpro.addItem("专业");
		Addpro.addItem("物联网");
		Addpro.addItem("计算机科学");
		Addpro.addItem("大数据分析");
		Addpro.addItem("信息科学");

		this.add(Addgrade);
		this.add(Addclass);
		this.add(Addpro);

		Changegrade.setBounds(250, 315, 60, 20);
		Changegrade.addItem("年级");
		Changegrade.addItem("2020");
		Changegrade.addItem("2021");

		Changeclass.setBounds(320, 315, 60, 20);
		Changeclass.addItem("班级");
		Changeclass.addItem("1");
		Changeclass.addItem("2");
		Changeclass.addItem("3");
		Changeclass.addItem("4");
		Changepro.setBounds(390, 315, 70, 20);
		Changepro.addItem("专业");
		Changepro.addItem("物联网");
		Changepro.addItem("计算机科学");
		Changepro.addItem("大数据分析");
		Changepro.addItem("信息科学");

		this.add(Changegrade);
		this.add(Changeclass);
		this.add(Changepro);
		/*
		 * 按钮增加
		 */
		Add.setBounds(480, 280, 60, 25);
		Add.setFont(new Font("Sans-Serif", Font.BOLD, 13));
		Change.setBounds(480, 315, 60, 25);
		Change.setFont(new Font("Sans-Serif", Font.BOLD, 13));
		Delete.setBounds(480, 350, 60, 25);
		Delete.setFont(new Font("Sans-Serif", Font.BOLD, 13));
		this.add(Add);
		this.add(Change);
		this.add(Delete);
	}

	// 监听器实现
	private void addListener() {
		
		
		Add.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				
				// TODO 自动生成的方法存根
				System.out.println("add...........");
				AddStuItem();
			}
		});
		
		Change.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// TODO 自动生成的方法存根
				System.out.println("change...........");
				ChangeStuItem();
			}
		});
		
		Delete.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO 自动生成的方法存根
				System.out.println("delete...........");
				DeleStuItem();
			}

		});
		
		
		table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // 单选
		table.addMouseListener(new MouseAdapter() { // 鼠标事件
			public void mouseClicked(MouseEvent e) {
				int selectedRow = table.getSelectedRow(); // 获得选中行索引
				Object oa = datastu1.getValueAt(selectedRow, 0);
				Object ob = datastu1.getValueAt(selectedRow, 1);
				Object oc = datastu1.getValueAt(selectedRow, 2);
				Object od = datastu1.getValueAt(selectedRow, 3);
				Object oe = datastu1.getValueAt(selectedRow, 4);
				Object of = datastu1.getValueAt(selectedRow, 5);
				
				MIDItem = (String) oa;				//鼠标事件获取到的内容加载到组件
				ChangeID.setText(MIDItem);
				DeleteID.setText(MIDItem);
				String MnameItem = (String) ob;
				Changename.setText(MnameItem);
				if (oc.equals("男")) {
					man2.setSelected(true);
				} else {
					women2.setSelected(true);
				}
				Changegrade.setSelectedItem(od);
				Changeclass.setSelectedItem(oe);
				Changepro.setSelectedItem(of);

				System.out.println(oa);
				System.out.println(ob);
				System.out.println(oc);
				System.out.println(od);
				System.out.println(oe);
				System.out.println(of);
				
				Add.setEnabled(false);				//add按钮不可用,chang,delete可以用
				Change.setEnabled(true);
				Delete.setEnabled(true);
			}
		});
		SortID.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO 自动生成的方法存根
				sqlE=sql+" order by stuid;";
			queryStuItem();
			}
			
		});
		SortName.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO 自动生成的方法存根
				sqlE=sql+" order by stuname;";
			queryStuItem();
			}
			
		});
		SortSex.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO 自动生成的方法存根
				sqlE=sql+" order by stusex;";
			queryStuItem();
			}
			
		});
		SortGrade.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO 自动生成的方法存根
				sqlE=sql+" order by stugrade;";
			queryStuItem();
			}
			
		});
		SortClass.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO 自动生成的方法存根
				sqlE=sql+" order by stuclass;";
			queryStuItem();
			}
			
		});
		SortPro.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO 自动生成的方法存根
				sqlE=sql+" order by stupro;";
			queryStuItem();
			}
			
		});
		help.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO 自动生成的方法存根
				try {
				Runtime.getRuntime().exec("explorer https://blog.youkuaiyun.com/guyexing");
				} catch (IOException e1) {
					// TODO 自动生成的 catch 块
					e1.printStackTrace();
				}
			System.out.println("help");
			}
			
		});
		About.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO 自动生成的方法存根
				JOptionPane.showMessageDialog(null,"Java学生管理器 计算机1班202041417104","关于管理器",1);
			System.out.println("About");
			}
			
		});
		ExitMenu.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {
				System.exit(0);
			}
		});
	}
	
	public void AddStuItem() {

		String AddIDItem = AddID.getText();
		System.out.println(AddIDItem);
		String AddnameItem = Addname.getText();
		System.out.println(AddnameItem);
		String AddsexItem = "";// 获取选择的单选框文本
		if (man1.isSelected()) {
			AddsexItem = "男";
		} else if (women1.isSelected()) {
			AddsexItem = "女";
		}
		System.out.println(AddsexItem);
		String AddgradeItem = (String) Addgrade.getSelectedItem();
		System.out.println(AddgradeItem);
		String AddclassItem = (String) Addclass.getSelectedItem();
		System.out.println(AddclassItem);
		String AddproItem = (String) Addpro.getSelectedItem();
		System.out.println(AddproItem);
		if (AddIDItem.equals("") || AddnameItem.equals("") || (!AddsexItem.equals("男") && !AddsexItem.equals("女"))
				|| AddgradeItem.equals("年级") || AddclassItem.equals("班级") || AddproItem.equals("专业")) {
			JOptionPane.showMessageDialog(null, "信息不完整请重新填写", "错误", 0);// 错误弹窗
		} else {
			try {
				Class.forName(JDBC_DRIVER);
				System.out.println("连接数据库.....");
				boolean falg = true;
				conn = DriverManager.getConnection(DB_URL, USER, PASS);
				stat = conn.createStatement();
				res = stat.executeQuery(sql);
				System.out.println("MYSQL连接成功");
				try {
					while(res.next()) {
					if(res.getString(1).equals(AddIDItem)) {
						falg = false;
						break;
					}
				}
				}catch(Exception e) {
					e.printStackTrace();
					JOptionPane.showMessageDialog(null, "数据库关闭失败", "错误", 0);// 弹窗
				}
				if (falg) {
					ps = conn.prepareStatement(sqlA);
					ps.setString(1, AddIDItem);
					ps.setString(2, AddnameItem);
					ps.setString(3, AddsexItem);
					ps.setString(4, AddgradeItem);
					ps.setString(5, AddclassItem);
					ps.setString(6, AddproItem);
					ps.executeUpdate();
					queryStuItem();// 刷新
					System.out.println("数据插入成功");
					JOptionPane.showMessageDialog(null, "数据插入成功", "正确", 1);// 弹窗
					try {
					ps.close();
					conn.close();
					System.out.println("成功关闭");
				} catch (Exception o) {
					o.printStackTrace();
					System.out.println("关闭失败");
					JOptionPane.showMessageDialog(null, "数据库关闭失败", "错误", 0);// 弹窗
				}
				} else {
					JOptionPane.showMessageDialog(null, "学号已存在", "错误", 0);// 弹窗
				}
			} catch (Exception e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
				System.out.println("数据库连接失败");
				JOptionPane.showMessageDialog(null, "数据库连接失败", "错误", 0);// 弹窗
			}
		}
		clearT();
	}

	public void ChangeStuItem() {
		String ChangeIDItem = ChangeID.getText();
		System.out.println(ChangeIDItem);
		String ChangenameItem = Changename.getText();
		System.out.println(ChangenameItem);
		String ChangesexItem = "";
		if (man2.isSelected()) {
			ChangesexItem = "男";
		} else if (women2.isSelected()) {
			ChangesexItem = "女";
		}
		System.out.println(ChangesexItem);// 输出选择的单选框文本
		String ChangegradeItem = (String) Changegrade.getSelectedItem();
		System.out.println(ChangegradeItem);
		String ChangeclassItem = (String) Changeclass.getSelectedItem();
		System.out.println(ChangeclassItem);
		String ChangeproItem = (String) Changepro.getSelectedItem();
		System.out.println(ChangeproItem);
		queryStuItem();// 刷新
		if (ChangeIDItem.equals("") || ChangenameItem.equals("")
				|| (!ChangesexItem.equals("男") && !ChangesexItem.equals("女")) || ChangegradeItem.equals("年级")
				|| ChangeclassItem.equals("班级") || ChangeproItem.equals("专业")) {
			JOptionPane.showMessageDialog(null, "信息不完整请重新填写", "错误", 0);// 错误弹窗
		} else {

			try {
				Class.forName(JDBC_DRIVER);
				System.out.println("连接数据库....");
				conn = DriverManager.getConnection(DB_URL, USER, PASS);
				stat = conn.createStatement();
				res = stat.executeQuery(sql);
				System.out.println("MYSQL连接成功");
				while (res.next()) {
					if (res.getString(1).equals(MIDItem)) {
						try {
							String sqld = sqlD + MIDItem + "'";
							stat = conn.createStatement();
							stat.executeUpdate(sqld);
							System.out.println("数据删除成功");
							
							ps = conn.prepareStatement(sqlA);
							ps.setString(1, ChangeIDItem);
							ps.setString(2, ChangenameItem);
							ps.setString(3, ChangesexItem);
							ps.setString(4, ChangegradeItem);
							ps.setString(5, ChangeclassItem);
							ps.setString(6, ChangeproItem);
							ps.executeUpdate();
							System.out.println("数据修改成功");
							queryStuItem(); // 更新
							JOptionPane.showMessageDialog(null, "数据修改成功", "正确", 1);// 弹窗
						} catch (Exception g) {
							// TODO Auto-generated catch block
							g.printStackTrace();
							System.out.println("数据修改失败");
							JOptionPane.showMessageDialog(null, "数据修改失败", "错误", 0);// 弹窗
						}
						try {
							stat.close();
							conn.close();
							System.out.println("成功关闭");
						} catch (Exception h) {
							h.printStackTrace();
							System.out.println("关闭失败");
							JOptionPane.showMessageDialog(null, "数据库关闭失败", "错误", 0);// 弹窗
						}
						break;
					}
				}
			} catch (Exception e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
				JOptionPane.showMessageDialog(null, "数据库连接失败", "错误", 0);// 弹窗
			}

		}
		// 内容重置
		clearT();
	}

	public void DeleStuItem() {
		String DeleteIDItem = DeleteID.getText();
		System.out.println(DeleteIDItem);
		queryStuItem();// 刷新
		if (DeleteIDItem.equals("")) {
			JOptionPane.showMessageDialog(null, "信息不完整请重新填写", "错误", 0);// 错误弹窗
		} else {
			boolean falg = true;
			try {
				Class.forName(JDBC_DRIVER);
				System.out.println("连接数据库....");
				conn = DriverManager.getConnection(DB_URL, USER, PASS);
				stat = conn.createStatement();
				res = stat.executeQuery(sql);
				System.out.println("MYSQL连接成功");
				while (res.next()) {
					// change
					if (res.getString(1).equals(DeleteIDItem)) {
						try {
							String sqld = sqlD+ DeleteIDItem + "'";
							stat = conn.createStatement();
							stat.executeUpdate(sqld);
							falg = false;
							System.out.println("数据删除成功");
							queryStuItem();// 刷新
							JOptionPane.showMessageDialog(null, "数据删除成功", "正确", 1);// 弹窗
						} catch (Exception g) {
							// TODO Auto-generated catch block
							g.printStackTrace();
							System.out.println("数据删除失败");
							JOptionPane.showMessageDialog(null, "数据删除失败", "错误", 0);// 弹窗
						}
						try {
							stat.close();
							conn.close();
							System.out.println("成功关闭");
						} catch (Exception h) {
							h.printStackTrace();
							System.out.println("关闭失败");
							JOptionPane.showMessageDialog(null, "数据库关闭失败", "错误", 0);// 弹窗
						}
						break;
					}
				}
				if (falg) {
					System.out.println("数据删除失败");
					JOptionPane.showMessageDialog(null, "数据删除失败", "错误", 0);
				}
			} catch (Exception e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
				JOptionPane.showMessageDialog(null, "数据库连接失败", "错误", 0);
			}

		}
		clearT();
	}

	public void queryStuItem() {
		// TODO Auto-generated method stub
		Vector<String> TableName = new Vector<String>();
		Vector<Vector<String>> TableData = new Vector<Vector<String>>();
		TableName.add("学号");
		TableName.add("姓名");
		TableName.add("性别");
		TableName.add("年级");
		TableName.add("班级");
		TableName.add("专业");
		Add.setEnabled(true);
		Change.setEnabled(false);
		Delete.setEnabled(false);
		try {
			Class.forName(JDBC_DRIVER);
			conn = DriverManager.getConnection(DB_URL, USER, PASS);
			ps = conn.prepareStatement(sqlE);
			res = ps.executeQuery();
			while (res.next()) {
				Vector<String> hang = new Vector<String>();
				hang.add(res.getString(1));
				hang.add(res.getString(2));
				hang.add(res.getString(3));
				hang.add(res.getString(4));
				hang.add(res.getString(5));
				hang.add(res.getString(6));
				TableData.add(hang);
			}
			System.out.println("成功载入");
		} catch (Exception q) {
			q.printStackTrace();
			System.out.println("载入失败");
			JOptionPane.showMessageDialog(null, "数据库连接失败", "错误", 0);
		} finally {
			try {
				res.close();
				ps.close();
				conn.close();
				System.out.println("成功关闭");
			} catch (Exception o) {
				o.printStackTrace();
				System.out.println("关闭失败");
				JOptionPane.showMessageDialog(null, "数据库关闭失败", "错误", 0);
			}
		}
		datastu1 = new DefaultTableModel(TableData, TableName);
		table.setModel(datastu1);

	}

	public void clearT() {//信息重置方法
		AddID.setText("");
		Addname.setText("");
		Addsex.clearSelection();
		Addgrade.setSelectedIndex(0);
		Addclass.setSelectedIndex(0);
		Addpro.setSelectedIndex(0);
		ChangeID.setText("");
		Changename.setText("");
		Changesex.clearSelection();
		Changegrade.setSelectedIndex(0);
		Changeclass.setSelectedIndex(0);
		Changepro.setSelectedIndex(0);
		DeleteID.setText("");
	}
}

下面是一个工具类,其中静态方法center()是实现功能是主页面可以适应屏幕居中,个人感觉没啥用但是书本水果超市有这样一个方法就顺便实现了,不想用的可以把上面代码中的init()方法中的GUITools.center(this);删掉,就不用实现这个工具类。

import java.awt.Toolkit;

import javax.swing.JFrame;

import java.awt.Component;
public class GUITools {
	static	Toolkit kit=Toolkit.getDefaultToolkit();
	public static void center(Component c) {
		int x=(kit.getScreenSize().width-c.getWidth())/2;
		int y=(kit.getScreenSize().height-c.getHeight())/2;
		c.setLocation(x, y);
	}
	public static void setTitleImage(JFrame frame,String titleIconPath) {
		frame.setIconImage(kit.createImage(titleIconPath));
	}
}

当然这样程序也不能运行起来。你的数据库要有这样一个叫tstudent的表,而且用以下相同表头。嫌麻烦你也可以把主页面代码中的数据库命令代码修改一下。

下面是测试类。

public class text {

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

}

最后,觉得不错收藏点赞吧。

水果超市管理系统(基于Java Swing、arrayList、GUI、Windowbuilding) 水果超市管理系统 1.任务描述 在水果超市中,有着各种各样的水果,为了便于管理,会将水果信息记录在水果超市管理系统中进行统一管理,通过系统可以方便地实现对水果信息的增删改查操作。其中,水果信息包括水果编号、水果名称、水果单价和计价单位等。本任务要求使用所学GUI知识,编写一个水果超市管理系统; 水果超市管理系统共包括系统欢迎界面和超市货物管理界面两个界面在系统欢迎界面通过单击“进入系统”按钮,进... 阅读详情

相关推荐

基于javaweb的水果蔬菜商城系统(java+ssm+jsp+mysql)

基于javaweb的水果蔬菜商城系统(java+ssm+jsp+mysql) 运行环境 Java≥8、MySQL≥5.7、Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功能说明 ![20220519001933](https://pic1.imgdb.cn/files/52560/project20/20220519001933.jpg) ![20220

m0_69592937的博客 989

java水果超市mysql_课内资源 - 水果超市管理系统(JDBC、纯手写未使用windowbuilding)...

[实验任务]水果超市管理系统[任务介绍]1. 任务描述在水果超市中,有着各种各样的水果,为了便于管理,会将水果信息记录在水果超市管理系统中进行统一管理,通过系统可以方便地实现对水果信息的增删改查操作。其中,水果信息包括水果编号、水果名称、水果单价和计价单位等。本任务要求使用所学GUI知识,编写一个水果超市管理系统,水果超市管理系统共包括系统欢迎界面和超市货物管理界面两个界面,在系统欢迎界面通...

weixin_28717647的博客 2844

GUI界面连接Mysql数据库

GUI界面连接Mysql数据库 GUI程序不仅界面美观,而且使用方便,各种软件的操作上也可统一,本实验通过Java来编写GUI程序。Java提供了编写GUI程序所需要的各种类,其中在本次实验中用到了java swing 用来设计登录、注册、修改密码、删除用户等界面,其中还用到了ActionLis...

qq_43254543的博客 8329

水果超市管理系统

水果超市管理系统运用的IDE是eclipse,在这里的话借助了mysql数据库. 任务描述 结合JDBC技术改写水果超市管理系统本任务做了图形化界面,讲水果超市管理系统结合JDBC技术,连接mysql数据库管理水果信息的形式。 ...

qq_57218752的博客 4644

基于 MATLAB GUI 的自助水果超市

因此,本文将介绍一种基于 MATLAB GUI 的自助水果超市方案,该方案可以帮助商家提高工作效率,减少排队等待时间,同时还能提供良好的用户体验。而前台用户界面则是顾客进行自助购物的平台,顾客可以在平台上选择并结算商品,同时还可以查看相关产品信息和营销优惠等。通过本文的介绍,我们可以看出,基于 MATLAB GUI 的自助水果超市方案在提高商家工作效率和优化顾客购物体验方面具有很大的优势。该模块可以帮助顾客对已选择的商品进行结算和支付,并且支持各种支付方式,例如微信支付、支付宝支付等。

m0_47037246的博客 347

基于MATLAB GUI的水果超市管理系统

通过设计合理的GUI界面和编写相应的代码,我们可以实现水果的添加、删除、更新和报表生成等功能。水果超市是一个常见的零售业务,为了更好地管理超市的库存和销售情况,我们可以开发一个基于MATLAB的GUI应用程序来实现水果超市的管理系统。通过上述代码,我们创建了一个简单的GUI窗口,其中包含一个"添加水果"按钮和一个用于显示水果列表的列表框。输入完成后,水果的信息将被添加到水果列表中。例如,当用户点击"添加水果"按钮时,我们可以编写一个回调函数来获取输入框中的水果信息,并将其添加到水果列表中。

ByteProwl的博客 332

基于Java的小小宠物医院管理系统的设计与实现

基于Java的小小宠物医院管理系统的设计与实现是一个综合性的项目,需要充分考虑课题背景、需求分析、数据库设计、系统实现等方面。通过该系统的实现,可以提高宠物医院的工作效率和服务质量,为宠物主人提供更好的医疗服务。在系统实现过程中,需要注意保证系统的稳定性、安全性和易用性。

毕业设计大牛哥 1001

Java Swing写的本地超市系统:顾客购物+管理员管货,全用文本文件存数据

一个纯Java Swing开发的离线超市管理桌面程序,不用数据库也不连网络,所有数据都存在本地文本文件里。顾客能看商品、加购、付款;管理员能增删改查商品信息(名称、价格、库存)和用户账号。登录后自动跳转对应界面,顾客看到购物车页面,管理员进入后台管理页,不同角色背景图也不同(比如mainBackground.jpg、adminPage_Background.jpg)。项目自带完整源码,包括主入口Main.java和多个测试类(Test01.java到Test03.java),还有专门存放图片的backgro

sun99的博客 189

java计算机毕业设计小区车辆管理系统源程序+mysql+系统+lw文档+远程调试

java计算机毕业设计小区车辆管理系统源程序+mysql+系统+lw文档+远程调试本源码技术栈:项目架构:B/S架构开发语言:Java语言开发软件:idea eclipse前端技术:Layui、HTML、CSS、JS、JQuery等技术后端技术:JAVA运行环境:Win10、JDK1.8数 据 库:MySQL5.7/8.0源码地址:https://pan.baidu.com/s/17J9I6b5SdqoP-1WUUFDZHg?pwd=or2r最新计算机专业原创开发毕业设计源码+数据库是近期作品

qekj76的博客 335

JAVA GUI超市管理系统

该系统已经实现的功能包括:该系统是基于IO数据流对系统数据进行管理,系统启动的时候,会从磁盘中读取数据文件进行加载,在退出系统的时候,数据会会写至文件中。在项目启动的时候会初始化一些测试数据,比如,用户账号信息和商品信息等。 1.登录功能(支持普通用户和管理员用户登录) 2.商品管理(支持商品添加,商品修改,商品删除,商品查询,商品统计) 3.注销功能(支持账号退出)

基于GUI实现的超市管理系统

基于java实现的超市管理系统,采购货物,货物余量等等很多功能,曾经的课程设计

JAVA毕业设计数字家谱管理系统设计与实现计算机源码+lw文档+系统+调试部署+数据库

JAVA毕业设计数字家谱管理系统设计与实现计算机源码+lw文档+系统+调试部署+数据库。JSP基于JSP的美容服务预约系统的设计与实现sqlserver。ssm基于vue框架的疫情防控知识在线答题系统设计与实现。JSP客户关系管理系统的设计与实现sqlserver。ssm基于Vue.js的网上书城管理系统的设计与实现。JSP鸡厂养殖管理系统的设计与实现sqlserver。ssm基于Vue的潍坊学院宿舍管理系统的设计与实现。ssm基于web的智慧医疗平台的设计与实现。...

佳愉毕设源码 1242

Java 水果超市管理系统

水果超市管理系统,使用Java中的GUI组件开发,里面共有2中实现形式,一种是使用ArraryList存储数据,另一种是使用了MySQL数据库,使用JDBC进行数据的增删改查操作。可以在界面展示水果清单,增加水果信息,修改水果信息和删除水果信息。适合Java初学者学习ArrayList、GUI、JDBC等知识。

3.Linux基础开发⼯具【由浅入深-Linux】

在 Windows 环境中,我们习惯了双击 或 文件并一路点击“下一步”来安装软件。但在 Linux 的世界里,软件的分发和安装理念有着本质的不同。Linux 强调权限控制、模块化和依赖管理。为了帮您构建完整的 Linux 系统管理知识体系,我们可以将 Linux 下安装软件的方式归纳为五大主流阵营。这是 Linux 下最正统、也是日常使用频率最高的方式。它又细分为“在线仓库安装”和“本地包安装”两种场景。1. 在线仓库安装(如同手机自带的 App Store) 操作系统维护着一个庞大的软件云端仓库。通

插花弄玉的博客 725

GUI超市管理系统(mysql+java)

该系统基于mysql+eclipse+jdk1.6(内部有注释,系统完整) 实现3张表的增删查改操作 简单GUI操作界面 适合课程设计

《R语言实战》第八章之回归分析图形

回归分析图形 回归分析分为简单回归与复杂回归 1 : 简单线性回归即:模型中只包含一个因变量和一个自变量,有时候也会包含多项式, 这个图形描述了身高与体重的线性关系,这也是一个多项式图形 2:当我们的预测变量(自变量)不止一个时,就属于多元线性回归,而且多元线性回归中也可以包含多项式以及交互项 (1)在进行多远回归分析之前可以先描述变量之间的相关关系 上图为一个散点图矩阵,描述了五个变量之间的相关关系,我们可以通过非主对角线的散点图来查看两个变量之间的关系。 多元线性回归简单地就是OLS回归,通过lm和

Strawberry_Ya的博客 1833

Javaee SSM+JSP 水果订单管理系统大作业

1. JvaaEE SSM+JSP 水果订单管理系统大作业 1.1 介绍 资源位置: javaee-final-homework.zip 说明: 运行sql后,配置Tomcat即可运行。 介绍: 半期作业,匆忙赶制的,花了1天多的时间,细节处可能不够完善,但SSM和Java Web技术是没有问题的。纯JSP+SSM开发,弹窗,JS等等都是手动加上去的。 1.2 设计说明 采农与零售商贸易关系图: 采农与零售商经济关系图: 系统用例图: 系统功能结构图: 系统数据

天行健 君子以自强不息,地势坤 君子以厚德载物。 1万+

[图解]SysML与EA实战:住宅安全系统接口块设计全解析

本文详细解析了使用SysML和EA工具进行住宅安全系统接口块设计的全流程。从系统上下文图入门到接口块实战技巧,涵盖块定义图与内部块图的视角转换,以及多图协同建模方法论。特别分享EA工具的高效操作指南和常见问题避坑建议,帮助工程师掌握精确信号定义、端口方向设置等关键技能,提升安防系统设计效率。

weixin_29234509的博客 332
上一篇: 错误:编码GBK的不可映射字符
下一篇: 浏览器的主页被恶意篡改并被锁定不能修改怎么办,用火绒一招解决?
guguxing
博客等级 码龄6年 7粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值