package cn.course.view;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.JTextField;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import cn.course.dao.CourseDao;
import cn.course.model.Course;
public class StudentClient
{
// 定义布局
BorderLayout mainLayout = new BorderLayout();
CardLayout layout = new CardLayout();
JFrame bamFrame;
MainPanel mainPanel = new MainPanel();// 主面板
JPanel upPanel = new JPanel();// 主面板中的---上面板
JPanel downPanel = new JPanel();// 主面板中的---下面板
CourseDao coursedao = new CourseDao();
AddCoursePanel addCoursePanel = new AddCoursePanel();//添加课程页面
final Object[] columnNames = {"课程编号", "课程名称", "备注"}; //列名最好用final修饰
Object[][] rowData = queryData("");
DefaultTableModel model = new DefaultTableModel(rowData,columnNames);
JTable dataTable = new JTable (model);
JScrollPane pane1;
JScrollPane pane3;
public StudentClient() {
downPanel.setLayout(layout);
dataTable.setPreferredScrollableViewportSize(new Dimension(650, 100));//设置表格的大小
dataTable.setRowHeight (30);//设置每行的高度为20
dataTable.setRowHeight (0, 20);//设置第1行的高度为15
dataTable.setRowMargin (5);//设置相邻两行单元格的距离
dataTable.setSelectionBackground (Color.white);//设置所选择行的背景色
dataTable.setSelectionForeground (Color.blue);//设置所选择行的前景色
//friends.setGridColor (Color.black);//设置网格线的颜色
dataTable.selectAll ();//选择所有行
//dataTable.setRowSelectionInterval (0,2);//设置初始的选择行,这里是1到3行都处于选择状态
dataTable.clearSelection ();//取消选择
dataTable.setDragEnabled (false);//不懂这个
dataTable.setShowGrid (false);//是否显示网格线
dataTable.setShowHorizontalLines (false);//是否显示水平的网格线
dataTable.setShowVerticalLines (true);//是否显示垂直的网格线
//friends.setValueAt ("tt", 0, 0);//设置某个单元格的值,这个值是一个对象
dataTable.doLayout ();
dataTable.setBackground (Color.lightGray);
// 设置表格中的数据居中显示
DefaultTableCellRenderer r=new DefaultTableCellRenderer();
r.setHorizontalAlignment(JLabel.CENTER);
dataTable.setDefaultRenderer(Object.class,r);
pane1 = new JScrollPane (addCoursePanel);//JTable最好加在JScrollPane上
pane1.setPreferredSize(new Dimension (650,300));
//JScrollPane pane2 = new JScrollPane (example2);
pane3 = new JScrollPane (dataTable);
pane3.setPreferredSize(new Dimension (650,300));
downPanel.add("cardSelect", pane3);// 卡片一 (添加)
downPanel.add("cardAdd", pane1);// 卡片一 (查询)
upPanel.add(mainPanel);
//downPanel.add(addCoursePanel);
//downPanel.add(pane1);
// 定义主窗体
bamFrame = new JFrame("学生选课管理");
bamFrame.setLayout(mainLayout);
bamFrame.setSize(650, 400);// 设定窗体大小
// 给窗体加面板
bamFrame.add(upPanel, BorderLayout.NORTH);
bamFrame.add(downPanel, BorderLayout.SOUTH);
addListeners();// 调用监听方法
bamFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//bamFrame.pack();
bamFrame.setVisible(true);
}
// 窗体中部分对象监听方法
private void addListeners() {
// 查询按钮
mainPanel.getSelectButton().addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String cname = mainPanel.getCourseField().getText();
System.out.print(cname);
Object[][] rowData2 = queryData(cname);
model.setDataVector(rowData2, columnNames);
layout.show(downPanel, "cardSelect");
}
});
// 添加按钮
mainPanel.getAddButton().addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
layout.show(downPanel, "cardAdd");
}
});
// 点击《提交》按钮
addCoursePanel.getOkButton().addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String courseid = addCoursePanel.getCourseIdText().getText();
String coursename = addCoursePanel.getCourseNameText().getText();
String note = addCoursePanel.getNoteText().getText();
int i = addCC(courseid, coursename, coursename);
if(i>0) {
Object[][] rowData2 = queryData("");
model.setDataVector(rowData2, columnNames);
layout.show(downPanel, "cardSelect");
}
}
});
// 点击《返回》按钮
addCoursePanel.getBackButton().addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
layout.show(downPanel, "cardSelect");
}
});
// 点击《退课》按钮
mainPanel.getDelButton().addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int i = dataTable.getSelectedRow();
if(i>0) {
int index1 = dataTable.getSelectedRow();//获取选中的行
String courseid = (String) dataTable.getValueAt(index1, 0);
int j=coursedao.DelCourse(courseid);
if(j>0) {
JOptionPane.showMessageDialog(downPanel, "退课成功!");
Object[][] rowData2 = queryData("");
model.setDataVector(rowData2, columnNames);
}else {
JOptionPane.showMessageDialog(downPanel, "退课失败!");
Object[][] rowData2 = queryData("");
model.setDataVector(rowData2, columnNames);
}
}else {
JOptionPane.showMessageDialog(downPanel, "请选择要退的课程!");
}
}
});
}
public static void main (String[] args)
{
new StudentClient();
}
//生成表格数据
/**
* @return
*/
public Object[][] queryData(String coursename){
List<Course> list=coursedao.queryAllCourse(coursename);
rowData=new Object[list.size()][columnNames.length];
for(int i=0;i<list.size();i++){
for(int j=0;j<rowData.length;j++){
rowData[i][0]=list.get(i).getCourseid();
rowData[i][1]=list.get(i).getCoursename();
rowData[i][2]=list.get(i).getNote();
}
}
return rowData;
}
//添加课程
/**
* @return
*/
public int addCC(String courseid,String coursename,String note){
int result = 0;
if ( addCoursePanel.getCourseIdText().getText().equals(""))
JOptionPane.showMessageDialog(addCoursePanel, "课程编号不能为空");
else if (addCoursePanel.getCourseNameText().getText().equals(""))
JOptionPane.showMessageDialog(addCoursePanel, "课程名称不能为空");
else {
result=coursedao.AddCourse(courseid, coursename, coursename);
}
return result;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Java+Swing+mysql实现学生选课管理系统(高分期末大作业).rar
共22个文件
class:11个
java:6个
sql:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 187 浏览量
2023-12-28
17:03:53
上传
评论 2
收藏 2.17MB RAR 举报
温馨提示
Java+Swing+mysql实现学生选课管理系统(高分期末大作业)已获导师指导并通过的95分的高分期末大作业项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 本系统实现了学生登录和管理员登录,学生实现选课,查看已选课程,修改密码,查看学生信息功能。管理员实现选课信息的增删改查,学生信息查询,学生密码修改功能。 详情:https://blog.csdn.net/Timi2019/article/details/128284896
资源推荐
资源详情
资源评论
收起资源包目录
Java+Swing+mysql实现学生选课管理系统(高分期末大作业).rar (22个子文件)
Java+Swing+mysql实现学生选课管理系统(高分期末大作业)
course
lib
mysql-connector-java-8.0.21.jar 2.29MB
.classpath 469B
.settings
org.eclipse.jdt.core.prefs 646B
src
cn
course
dao
CourseDao.java 3KB
view
AddCoursePanel.java 2KB
StudentClient.java 7KB
MainPanel.java 1KB
model
Course.java 610B
util
DbUtils.java 1KB
bin
cn
course
dao
CourseDao.class 3KB
view
AddCoursePanel.class 2KB
StudentClient$4.class 916B
StudentClient$1.class 2KB
StudentClient$2.class 913B
StudentClient$5.class 2KB
StudentClient$3.class 2KB
StudentClient.class 6KB
MainPanel.class 1KB
model
Course.class 919B
util
DbUtils.class 1KB
.project 382B
db
course.sql 1KB
共 22 条
- 1
资源评论
小码叔
- 粉丝: 5102
- 资源: 5463
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功