小试牛刀-教务信息管理系统(TeaBoard)

本文介绍了一个基于Java Swing的教师窗口系统的设计与实现。该系统包括个人信息查看、成绩管理和教授课程等功能模块,通过卡片布局实现界面切换,支持成绩录入和课程添加操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package StuAdmin;

import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.SQLException;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;

public class TeaBoard implements ActionListener {
	JFrame Teadlg;
	JButton button, exit, relogin, score, select;
	JPanel panel1, panel2, panel3;
	JPanel pane;
	JTable table1, table2, table3, table4;
	CardLayout card;
	String teacherid, teachername;

	TeaBoard(String tno) throws SQLException {
		teacherid = tno;
		Teadlg = new JFrame("教师窗口");
		Teadlg.setLayout(null);
		Teadlg.setBackground(Color.WHITE);
		relogin = new JButton("重新登录");
		relogin.setFocusPainted(false);
		relogin.addActionListener(this);
		relogin.setBounds(760, 50, 100, 30);
		relogin.setBackground(Color.WHITE);
		relogin.setForeground(new Color(0, 0, 50));
		exit = new JButton("退出系统");
		exit.setFocusPainted(false);
		exit.addActionListener(this);
		exit.setBounds(870, 50, 100, 30);
		exit.setBackground(Color.WHITE);
		exit.setForeground(new Color(0, 0, 50));
		Teadlg.add(relogin);
		Teadlg.add(exit);

		JPanel top = new JPanel();
		JLabel title = new JLabel("教务管理系统");
		Font titlefont = new Font("黑体", Font.PLAIN, 50);
		title.setFont(titlefont);
		title.setForeground(Color.WHITE);
		top.add(title, BorderLayout.EAST);
		top.setBounds(0, 0, 984, 100);
		top.setBackground(new Color(0, 0, 50));
		top.setBorder(BorderFactory.createLineBorder(Color.BLACK));

		JPanel buttons = new JPanel(new GridLayout(1, 3));
		buttons.setBounds(0, 95, 984, 40);
		button = new JButton("个人信息");
		button.setBackground(Color.WHITE);
		button.setFont(new Font("黑体", Font.PLAIN, 18));
		button.setBorder(BorderFactory.createLineBorder(Color.BLACK));
		button.addActionListener(this);
		buttons.add(button);
		button = new JButton("成绩管理");
		button.setBackground(Color.WHITE);
		button.setFont(new Font("黑体", Font.PLAIN, 18));
		button.setBorder(BorderFactory.createLineBorder(Color.BLACK));
		button.addActionListener(this);
		buttons.add(button);
		button = new JButton("教授课程");
		button.setBackground(Color.WHITE);
		button.setFont(new Font("黑体", Font.PLAIN, 18));
		button.setBorder(BorderFactory.createLineBorder(Color.BLACK));
		button.addActionListener(this);
		buttons.add(button);
		Teadlg.add(buttons);

		card = new CardLayout(3, 3);
		pane = new JPanel(card); // JPanel的布局管理将被设置成CardLayout

		panel1 = new JPanel();
		panel2 = new JPanel();
		panel3 = new JPanel();
		panel1.setBackground(new Color(0, 0, 50));
		panel2.setBackground(new Color(0, 0, 50));
		panel3.setBackground(new Color(0, 0, 50));

		panel1();
		panel2();
		panel3();
		pane.add(panel1, "p1");
		pane.add(panel2, "p2");
		pane.add(panel3, "p3");
		pane.setBounds(0, 135, 985, 425);

		Teadlg.add(pane);
		Teadlg.add(top);
		Teadlg.setBounds(200, 80, 990, 600);
		Teadlg.setVisible(true);
		Teadlg.setResizable(false);
	}

	public void panel1() throws SQLException {
		SQL idsql = new SQL();
		String text = "SELECT teacherid,teachername,teachersex,departmentname,teacherphone FROM teacher,department WHERE teacherid = '"
				+ teacherid
				+ "' AND teacher.teacherdepart=department.departmentid";
		idsql.select(text);
		Object[] columnNames = { " ", " " };
		Object[][] rowData = {

		{ "职工号", idsql.resultSet.getString("teacherid") },
				{ "姓名", idsql.resultSet.getString("teachername") },
				{ "性别", idsql.resultSet.getString("teachersex") },
				{ "所属学院", idsql.resultSet.getString("departmentname") },
				{ "联系方式", idsql.resultSet.getString("teacherphone") } };
		DefaultTableModel model = new DefaultTableModel(rowData, columnNames) {
			private static final long serialVersionUID = 1L;

			public boolean isCellEditable(int row, int column) {
				return false;
			}
		};
		table1 = new JTable(model);
		table1.setSelectionBackground(new Color(0, 0, 50));
		table1.setSelectionForeground(Color.white);
		table1.getTableHeader().setReorderingAllowed(false);
		table1.setPreferredScrollableViewportSize(new Dimension(965, 385));// 设置表格的大小
		table1.setRowHeight(30);// 设置每行的高度为20
		JScrollPane tpane = new JScrollPane(table1);
		tpane.setBounds(5, 5, 965, 385);
		DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();// 设置table内容居中
		tcr.setHorizontalAlignment(SwingConstants.CENTER);// 这句和上句作用一样
		table1.setDefaultRenderer(Object.class, tcr);
		panel1.add(tpane);
	}

	public void panel2() throws SQLException {
		panel2.setLayout(null);
		JTextField search = new JTextField();
		search.setBounds(5, 5, 860, 30);
		JButton submit = new JButton("快速查找");
		submit.setBounds(870, 5, 100, 30);
		submit.setBackground(Color.WHITE);

		DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();// 设置table内容居中
		tcr.setHorizontalAlignment(SwingConstants.CENTER);// 这句和上句作用一样

		SQL teasql = new SQL();
		String text = "SELECT teachername FROM teacher WHERE teacherid='"
				+ teacherid + "';";
		teachername = teasql.getcell(text);
		text = "SELECT * FROM stu_stc WHERE 任课教师='" + teachername + "';";
		table2 = new JTable(teasql.getTable(text));
		// table2 = teasql.getTable(test);
		table2.setSelectionBackground(new Color(0, 0, 50));
		table2.getTableHeader().setReorderingAllowed(false);
		table2.setSelectionForeground(Color.white);
		table2.setDefaultRenderer(Object.class, tcr);
		teasql.shutDown();
		table2.setPreferredScrollableViewportSize(new Dimension(980, 350));// 设置表格的大小
		table2.setRowHeight(30);// 设置每行的高度为20

		table2.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {
				score.setForeground(new Color(0, 0, 50));
				score.setBackground(Color.WHITE);
				score.setOpaque(true); // 设置背景透明
				score.setBorder(BorderFactory.createLineBorder(Color.GRAY));
				score.setEnabled(true);
			}
			});

		JScrollPane tpane = new JScrollPane(table2);
		tpane.setBounds(5, 40, 970, 370);

		score = new JButton("登记成绩");
		score.addActionListener(this);
		score.setBounds(860, 370, 100, 30);
		score.setForeground(Color.GRAY);
		score.setBackground(Color.WHITE);
		score.setOpaque(false); // 设置背景透明
		score.setBorder(BorderFactory.createLineBorder(Color.GRAY));
		score.setEnabled(false);
		panel2.add(score);

		panel2.add(search);
		panel2.add(submit);
		panel2.add(tpane);

	}

	public void panel3() throws SQLException {
		panel3.setLayout(null);
		JTextField search = new JTextField();
		search.setBounds(5, 5, 860, 30);
		JButton submit = new JButton("快速查找");
		submit.setBounds(870, 5, 100, 30);
		submit.setBackground(Color.WHITE);

		SQL teasql = new SQL();
		String text = "SELECT teachername FROM teacher WHERE teacherid='"
				+ teacherid + "';";
		teachername = teasql.getcell(text);
		text = "SELECT * FROM stu_tc WHERE 任课教师='" + teachername + "'";
		table3 = new JTable(teasql.getTable(text));
		table3.setSelectionBackground(new Color(0, 0, 50));
		table3.setSelectionForeground(Color.white);
		DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();// 设置table内容居中
		tcr.setHorizontalAlignment(SwingConstants.CENTER);// 这句和上句作用一样
		table3.setDefaultRenderer(Object.class, tcr);
		table3.getTableHeader().setReorderingAllowed(false);
		
		table3.setPreferredScrollableViewportSize(new Dimension(980, 200));// 设置表格的大小
		table3.setRowHeight(30);// 设置每行的高度为20
		JScrollPane tpane = new JScrollPane(table3);
		tpane.setBounds(5, 40, 965, 200);
		
		select = new JButton("添加课程");
		select.addActionListener(this);
		select.setBounds(870, 250, 100, 30);
		select.setForeground(Color.GRAY);
		select.setBackground(Color.WHITE);
		select.setOpaque(false); // 设置背景透明
		select.setBorder(BorderFactory.createLineBorder(Color.GRAY));
		select.setEnabled(false);
		panel3.add(select);

		// SQL stusql4 = new SQL();
		text = "SELECT * FROM course";
		// table2 = stusql2.getTable(test2);
		table4 = new JTable(teasql.getTable(text));
		// table2.setModel(stusql2.getTable(text2));
		DefaultTableCellRenderer tcr2 = new DefaultTableCellRenderer();// 设置table内容居中
		tcr2.setHorizontalAlignment(SwingConstants.CENTER);
		table4.setDefaultRenderer(Object.class, tcr2);
		table4.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {
				select.setForeground(new Color(0, 0, 50));
				select.setBackground(Color.WHITE);
				select.setOpaque(true); // 设置背景透明
				select.setBorder(BorderFactory.createLineBorder(Color.GRAY));
				select.setEnabled(true);
			}
			});
		teasql.shutDown();		
		table4.setPreferredScrollableViewportSize(new Dimension(980, 120));// 设置表格的大小
		table4.setRowHeight(25);// 设置每行的高度为20
		JScrollPane tpane2 = new JScrollPane(table4);
		tpane2.setBounds(5, 290, 965, 120);
		
		
		
		
		
		
		panel3.add(submit);
		panel3.add(search);
		panel3.add(tpane);
		panel3.add(tpane2);
	}
	public void selecttc(String cno) throws SQLException {
		SQL selectcourse = new SQL();
		String query = "INSERT INTO tc VALUES ('" + teacherid + "', '" + cno
				+ "');";
		if (selectcourse.othersql(query) > 0) {
			SQL sql4 = new SQL();
			JOptionPane.showMessageDialog(null, "添加成功");
			table3.setModel(sql4.getTable("SELECT * FROM stu_tc WHERE teacherid='"
				+ teacherid + "';"));
			table4.setModel(sql4
					.getTable("SELECT * FROM course"));

		} else
			JOptionPane.showMessageDialog(null, "添加失败");
		selectcourse.shutDown();
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		String cmd = e.getActionCommand();
		if (cmd.equals("个人信息")) {
			card.show(pane, "p1");
		} else if (cmd.equals("成绩管理")) {
			card.show(pane, "p2");
		} else if (cmd.equals("教授课程")) {
			card.show(pane, "p3");
		}
		if (cmd.equals("添加课程")) {
			int row = table4.getSelectedColumn();
			if (row != -1) {
				String courseid = table4.getValueAt(table4.getSelectedRow(), 0)
						.toString();
				try {
					selecttc(courseid);
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}

			}
		}

		if (cmd.equals("登记成绩")) {
			int row = table2.getSelectedColumn();
			if (row != -1) {

				String studentid = table2
						.getValueAt(table2.getSelectedRow(), 0).toString();
				String studentname = table2.getValueAt(table2.getSelectedRow(),
						1).toString();
				String courseid = table2.getValueAt(table2.getSelectedRow(), 2)
						.toString();
				String coursename = table2.getValueAt(table2.getSelectedRow(),
						3).toString();
				Operates operate = new Operates(Teadlg, courseid, coursename,
						studentid, studentname);
				if (operate.Confirm == 1) {
					SQL newsql = new SQL();
					table2.setModel(newsql
							.getTable("SELECT * FROM stu_stc WHERE 任课教师='"
									+ teachername + "';"));
				}
			}
		}

		if (cmd.equals("退出系统")) {
			Teadlg.dispose();
		} else if (cmd.equals("重新登录")) {
			Teadlg.dispose();
			new StuAdmin();
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值