📄 panelforcourse.java
字号:
package E4;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.*;
import javax.swing.table.*;
import javax.swing.event.MouseInputListener;
import javax.swing.table.AbstractTableModel;
import javax.swing.event.*;
//显示信息
class panelForCourse extends JPanel implements ActionListener,TableModelListener,ListSelectionListener//专属某一学生
{
public static JTable table;
public static int jishu;
Table_Model_1 tm = new Table_Model_1();
Object course [] = new Object[8];
public static JLabel showNum=new JLabel("总数为:"+jishu);
public static JLabel showCreditNum=new JLabel("总学分为:"+jishu);
public static JTextField name=new JTextField("",8);
public static JTextField id =new JTextField("",8);
public static int tableRow = 0;
public static int tableColumn = 0;
JPanel jpl=new JPanel();
JPanel showDetail = new JPanel();
JPanel forAdd = new JPanel();
JPanel forAddNorth = new JPanel();
JPanel forAddSouth = new JPanel();
JPanel forAddCenter = new JPanel();
JButton jAdd=new JButton("选课");
JButton jUpdate=new JButton("修改");
JButton jFind=new JButton("查找");
JButton jDelete=new JButton("删除");
JButton jRefresh=new JButton("刷新");
JButton jShowclass=new JButton("班级");
JButton jSet=new JButton("设置");
TextField cno = new TextField("",8);
TextField cname = new TextField("",8);
TextField dept = new TextField("",8);
TextField credit = new TextField("",8);
TextField teacher = new TextField("",8);
TextField semester = new TextField("",8);
JButton selectCourse = new JButton("选择课程");
JButton confirm = new JButton("确定");//只有在单个学生时才好使
JButton concel = new JButton("取消");
JPopupMenu popupMenu=new JPopupMenu(); //鼠标右键
JMenuItem deleteRow=new JMenuItem("删除此行记录");
JMenuItem deleteStuInfor=new JMenuItem("删除课程");
JMenuItem findInfor=new JMenuItem("查找记录");
JMenuItem fresh = new JMenuItem("刷新");
SearchForCourse sfc;//查找界面
Delete_2 delete2;//删除
framForUpdate ffu;//修改界面
proceeSQL psql;
dialogForSet dfs;//设置界面
dialogForChoose dfc;//选择课程界面
ListSelectionModel selectionMode=null;
panelForCourse(JFrame f,String s,boolean b)
{
sfc = new SearchForCourse(f,"查找选课信息",b);
delete2 = new Delete_2(f,"删除选课信息",b);
ffu =new framForUpdate(f,"输入要修改的学号",b);
dfc = new dialogForChoose(f,"选择课程",b);
dfs = new dialogForSet(f,"设置",false);
psql = new proceeSQL();
//setSize(800,450);
super.setLayout(new BorderLayout(9,9));
jishu = psql.getCourseAndStuInfor(tm.content);
showNum.setText(("总数为:"+jishu));
table=new JTable(tm);
popupMenu.add(deleteRow);
popupMenu.addSeparator();
popupMenu.add(deleteStuInfor);
popupMenu.addSeparator();
popupMenu.add(findInfor);
popupMenu.addSeparator();
popupMenu.add(fresh);
deleteRow.addActionListener(this);
deleteStuInfor.addActionListener(this);
findInfor.addActionListener(this);
fresh.addActionListener(this);
showDetail.add(new JLabel("学号:",JLabel.CENTER));
showDetail.add(id);
showDetail.add(new JLabel("姓名:",JLabel.CENTER));
showDetail.add(name);
showDetail.add(selectCourse);
selectCourse.addActionListener(this);
showDetail.setLayout(new FlowLayout(FlowLayout.CENTER,6,6));
forAdd.add(new JLabel("课程号:",JLabel.CENTER));
forAdd.add(cno);
forAdd.add(new JLabel("课程名:",JLabel.CENTER));
forAdd.add(cname);
forAdd.add(new JLabel("所属系:",JLabel.CENTER));
forAdd.add(dept);
forAdd.add(new JLabel("学分:",JLabel.CENTER));
forAdd.add(credit);
forAdd.add(new JLabel("任课教师:",JLabel.CENTER));
forAdd.add(teacher);
forAdd.add(new JLabel("学期:",JLabel.CENTER));
forAdd.add(semester);
forAdd.setLayout(new GridLayout(2,6,9,9));
cno.setEditable(false);
cname.setEditable(false);
dept.setEditable(false);
credit.setEditable(false);
teacher.setEditable(false);
semester.setEditable(false);
semester.setEditable(false);
forAddNorth.setLayout(new BorderLayout(5,6));
forAddNorth.add(showDetail,BorderLayout.NORTH);
forAddNorth.add(forAdd);
forAddSouth.setLayout(new FlowLayout(FlowLayout.RIGHT,6,6));
forAddSouth.add(confirm);
forAddSouth.add(concel);
confirm.addActionListener(this);
concel.addActionListener(this);
MouseInputListener mil=new MouseInputListener() {
public void mouseClicked(MouseEvent e) {
processEvent(e);
}
public void mousePressed(MouseEvent e) {
processEvent(e);
}
public void mouseReleased(MouseEvent e) {
processEvent(e);
if ((e.getModifiers() & MouseEvent.BUTTON3_MASK) != 0) {
popupMenu.show(table, e.getX(), e.getY());
}
}
public void mouseEntered(MouseEvent e) {
processEvent(e);
}
public void mouseExited(MouseEvent e) {
processEvent(e);
}
public void mouseDragged(MouseEvent e) {
processEvent(e);
}
public void mouseMoved(MouseEvent e) {
processEvent(e);
}
private void processEvent(MouseEvent e) {
if ((e.getModifiers() & MouseEvent.BUTTON3_MASK) != 0) {
MouseEvent ne = new MouseEvent(
e.getComponent(), e.getID(),
e.getWhen(), MouseEvent.BUTTON1_MASK,
e.getX(), e.getY(), e.getClickCount(), false);
table.dispatchEvent(ne);
}
}
};
table.addMouseListener(mil);
table.addMouseMotionListener(mil);
selectionMode=table.getSelectionModel();//取得table的ListSelectionModel.
selectionMode.addListSelectionListener(this);
jpl.add(jFind);
jpl.add(jDelete);
jpl.add(jRefresh);
jpl.add(jSet);
jpl.add(showNum);
jpl.add(showCreditNum);
jpl.setLayout(new GridLayout(10,1,2,9));
forAddCenter.setLayout(new BorderLayout(5,6));
forAddCenter.add(forAddNorth,BorderLayout.NORTH);
forAddCenter.add(new JScrollPane(table));
forAddCenter.add(forAddSouth,BorderLayout.SOUTH);
super.add(jpl,BorderLayout.WEST);
super.add(forAddCenter);
jAdd.addActionListener(this);
jFind.addActionListener(this);
jDelete.addActionListener(this);
jRefresh.addActionListener(this);
jShowclass.addActionListener(this);
jSet.addActionListener(this);
dfc.confirm.addActionListener(this);
delete2.pDeleAll.handin.addActionListener(this);
delete2.pDeleCla.handin.addActionListener(this);
delete2.pDeleCol.handin.addActionListener(this);
delete2.pDelePer.handin.addActionListener(this);
sfc.pfscn.handin.addActionListener(this);
sfc.pfscla.handin.addActionListener(this);
sfc.pfsco.handin.addActionListener(this);
sfc.pfsCourseName.handin.addActionListener(this);
sfc.pfsi.handin.addActionListener(this);
sfc.pfsn.handin.addActionListener(this);
}
public static void setTabelDisplay(Boolean tf){
table.setVisible(tf);
}
public void reFresh(){
table.setVisible(false);
tm.content.removeAllElements();
jishu = psql.getCourseAndStuInfor(tm.content);
table.setVisible(true);
showNum.setText("总数为:"+jishu);
showCreditNum.setText("总学分为:");
}
public void valueChanged(ListSelectionEvent el){
tableRow =table.getSelectedRow();
tableColumn =table.getSelectedColumn();
// label.setText("修改字段位置:"+(row+1)+" 行 "+(column+1)+" 列");
}
public void tableChanged(TableModelEvent e)//选中某一列,就吧他的值传到上面的信息栏中
{
int row =e.getFirstRow();
int column = e.getColumn();
course[0] = tm.getValueAt(row,1);
course[1] = tm.getValueAt(row,2);
course[2] = tm.getValueAt(row,3);
course[3] = tm.getValueAt(row,4);
course[4] = tm.getValueAt(row,5);
course[5] = tm.getValueAt(row,6);
course[6] = tm.getValueAt(row,7);
course[7] = tm.getValueAt(row,8);
psql.updateCourseDetail(course);
reFresh();
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==confirm){
course[0] = id.getText();
course[1] = name.getText();
course[2] = cno.getText();
course[3] = cname.getText();
course[4] = dept.getText();
course[5] = credit.getText();
course[6] = teacher.getText();
course[7] = semester.getText();
if(id.getText().equals("")||cno.getText().equals("")||cname.getText().equals("")
||dept.getText().equals("")||name.getText().equals("")||semester.getText().equals("")){
JOptionPane.showMessageDialog(null, "请输入完整信息:");
return;
}
else psql.insertScDetail(course);
reFresh();
}
else if(e.getSource()== dfc.confirm){
if(dfc.cno.getText().equals("")){
JOptionPane.showMessageDialog(null, "请输入课程号:");
return;
}
boolean state = psql.weatherExistInCourse(dfc.cno.getText());
if(!state)
JOptionPane.showMessageDialog(null, "没有此课程");
else{
psql.getCourseByCno(course,dfc.cno.getText());
//id.setText(String.valueOf(course[0]));
// name.setText(String.valueOf(course[1]));
cno.setText(String.valueOf(course[2]));
cname.setText(String.valueOf(course[3]));
dept.setText(String.valueOf(course[4]));
credit.setText(String.valueOf(course[5]));
teacher.setText(String.valueOf(course[6]));
semester.setText(String.valueOf(course[7]));
}
}
else if(e.getSource()==selectCourse||e.getSource()==jAdd)
{
dfc.setIdAndName(id.getText(),name.getText());
dfc.setDisplay(true);
}
else if(e.getSource()==jFind){
sfc.setDisplay(true);
}
else if(e.getSource()==jDelete||e.getSource()==deleteStuInfor){
delete2.setDisplay(true);
}
else if(e.getSource()==jRefresh||e.getSource()==fresh){
reFresh();
}
else if(e.getSource()==sfc.pfscla.handin){
table.setVisible(false);
tm.content.removeAllElements();
jishu = psql.SearchCourseByClasses(tm.content,sfc.pfscla.classes.getSelectedItem());
table.setVisible(true);
}
else if(e.getSource()==sfc.pfscn.handin){
table.setVisible(false);
tm.content.removeAllElements();
jishu = psql.SearchCourseByCno(tm.content,sfc.pfscn.jf_id.getText());
table.setVisible(true);
}
else if(e.getSource()==sfc.pfsco.handin){
table.setVisible(false);
tm.content.removeAllElements();
jishu = psql.SearchCourseByCollege(tm.content,sfc.pfsco.college.getSelectedItem());
table.setVisible(true);
}
else if(e.getSource()==sfc.pfsCourseName.handin){
table.setVisible(false);
tm.content.removeAllElements();
jishu = psql.SearchCourseByCname(tm.content,sfc.pfscn.jf_id.getText());
reFresh();
}
else if(e.getSource()==sfc.pfsi.handin){
table.setVisible(false);
tm.content.removeAllElements();
jishu = psql.SearchCourseBySno(tm.content,sfc.pfsi.jf_id.getText());
table.setVisible(true);
}
else if(e.getSource()==sfc.pfsn.handin){
table.setVisible(false);
tm.content.removeAllElements();
jishu = psql.SearchCourseBySname(tm.content,sfc.pfsn.jf_id.getText());
table.setVisible(true);
}
else if(e.getSource()==delete2.pDeleAll.handin){
psql.DistroyAllCourse();
reFresh();
}
else if(e.getSource()==delete2.pDeleCla.handin){
psql.DistroySCByClasses(delete2.pDeleCla.classes.getSelectedItem());
reFresh();
}
else if(e.getSource()==delete2.pDeleCol.handin){
psql.DistroySCByCollege(delete2.pDeleCol.college.getSelectedItem());
reFresh();
}
else if(e.getSource()==delete2.pDelePer.handin){
psql.DistroySCByID(delete2.pDelePer.jf_id.getText());
reFresh();
}
else if(e.getSource()==jSet){
dfs.setDisplay(true);
}
else if(e.getSource()==deleteRow){
psql.DistroySCByIDAndCno(String.valueOf(tm.getValueAt(tableRow,1)),String.valueOf(tm.getValueAt(tableRow,3)));
reFresh();
}
}
public static void setIdAndName(String setId,String setName){
id.setText(setId);
name.setText(setName);
}
}
class Table_Model_1 extends AbstractTableModel {
public Vector content = new Vector();
String[] title_name = {"序号","学号","姓名","课程号","课程名","所属系","学分","任课教师","学期"};
Object TMInfor [] = new Object[9];
public String getColumnName(int col) {
return title_name[col];
}
public int getColumnCount() {
return title_name.length;
}
public int getRowCount() {
return content.size();
}
public Object getValueAt(int row, int col) {
return ( (Vector) content.get(row)).get(col);
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return true;
}
public void setValueAt(Object value, int row, int col) {
// content.setElementAt(value,)
for(int i=0;i<9;i++)
TMInfor[i] = ((Vector)content.get(row)).get(i);
TMInfor[col] = value;
Vector temp_v = new Vector(9);
for(int i=0;i<9;i++)
temp_v.add(TMInfor[i]);
content.setElementAt(temp_v,row);
fireTableCellUpdated(row, col);
}
public void mySetValueAt(Object value, int row, int col) {
//((Vector)content.elementAt(row)).elementAt(col) = value;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -