📄 panelforgrade.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 panelForGrade extends JPanel implements ActionListener,TableModelListener,ListSelectionListener
{
public static JTable table;
public static int jishu;
Table_Model_2 tm = new Table_Model_2();
Object SC [] = new Object[6];
public static JLabel showNum=new JLabel("人数为:"+jishu);
public static int tableRow = 0;
public static int tableColumn = 0;
JPanel jpl=new JPanel();
JButton jPaixu=new JButton("排序");
JButton jFind=new JButton("查找");
JButton jRefresh=new JButton("刷新");
JPopupMenu popupMenu=new JPopupMenu(); //鼠标右键
JMenuItem findInfor=new JMenuItem("查找记录");
JMenuItem compositor=new JMenuItem("排序");
JMenuItem fresh = new JMenuItem("刷新");
framForCompositor ffc;//排序界面
SearchForSC sfs;//查找界面
proceeSQL psql;
ListSelectionModel selectionMode=null;
panelForGrade(JFrame f,String s,boolean b)
{
// super(f);
ffc = new framForCompositor(f,"排序",b);
sfs = new SearchForSC(f,"查找成绩信息",b);
psql = new proceeSQL();
//setSize(800,450);
super.setVisible(true);
super.setLayout(new BorderLayout(9,9));
//生成200X4的表格
tm.addTableModelListener(this);
jishu = psql.getSC(tm.content);
showNum.setText(("总数为:"+jishu));
table=new JTable(tm);
//生成菜单条,菜单项,菜单(包括FRAME和DIALOG)
popupMenu.add(findInfor);
popupMenu.addSeparator();
popupMenu.add(compositor);
popupMenu.addSeparator();
popupMenu.add(fresh);
findInfor.addActionListener(this);
compositor.addActionListener(this);
fresh.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=new JPanel();
jpl.add(jPaixu);
jpl.add(jFind);
jpl.add(jRefresh);
jpl.add(showNum);
jpl.setLayout(new GridLayout(9,1,2,9));
super.add(jpl,BorderLayout.WEST);
super.add(new JScrollPane(table));
jPaixu.addActionListener(this);
jFind.addActionListener(this);
jRefresh.addActionListener(this);
sfs.pfscn.handin.addActionListener(this);
sfs.pfscla.handin.addActionListener(this);
sfs.pfsco.handin.addActionListener(this);
sfs.pfsCourseName.handin.addActionListener(this);
sfs.pfsi.handin.addActionListener(this);
sfs.pfsn.handin.addActionListener(this);
}
public static void setTabelDisplay(Boolean tf){
table.setVisible(tf);
}
public void reFresh(){
table.setVisible(false);
tm.content.removeAllElements();
jishu = psql.getSC(tm.content);
table.setVisible(true);
showNum.setText("总数为:"+jishu);
}
public void valueChanged(ListSelectionEvent el){
tableRow =table.getSelectedRow();
tableColumn =table.getSelectedColumn();
}
public void tableChanged(TableModelEvent e)//选中某一列,就吧他的值传到上面的信息栏中
{
int row =e.getFirstRow();
int column = e.getColumn();
SC[0] = tm.getValueAt(row,1);
SC[1] = tm.getValueAt(row,2);
SC[2] = tm.getValueAt(row,3);
SC[3] = tm.getValueAt(row,4);
SC[4] = tm.getValueAt(row,5);
SC[5] = tm.getValueAt(row,6);
psql.UpdateSC(SC);
reFresh();
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==jFind){
sfs.setDisplay(true);
}
else if(e.getSource()==jPaixu){
ffc.setDisplay(true);
}
else if(e.getSource()==jRefresh||e.getSource()==fresh){
reFresh();
}
else if(e.getSource()==sfs.pfscla.handin){
table.setVisible(false);
tm.content.removeAllElements();
jishu = psql.SearchSCByClasses(tm.content,sfs.pfscla.classes.getSelectedItem());
table.setVisible(true);
}
else if(e.getSource()==sfs.pfscn.handin){
table.setVisible(false);
tm.content.removeAllElements();
jishu = psql.SearchSCByCno(tm.content,sfs.pfscn.jf_id.getText());
table.setVisible(true);
}
else if(e.getSource()==sfs.pfsco.handin){
table.setVisible(false);
tm.content.removeAllElements();
jishu = psql.SearchSCByCollege(tm.content,sfs.pfsco.college.getSelectedItem());
table.setVisible(true);
}
else if(e.getSource()==sfs.pfsCourseName.handin){
table.setVisible(false);
tm.content.removeAllElements();
jishu = psql.SearchSCByCname(tm.content,sfs.pfscn.jf_id.getText());
table.setVisible(true);
}
else if(e.getSource()==sfs.pfsi.handin){
table.setVisible(false);
tm.content.removeAllElements();
jishu = psql.SearchSCBySno(tm.content,sfs.pfsi.jf_id.getText());
table.setVisible(true);
}
else if(e.getSource()==sfs.pfsn.handin){
table.setVisible(false);
tm.content.removeAllElements();
jishu = psql.SearchSCBySname(tm.content,sfs.pfsn.jf_id.getText());
table.setVisible(true);
}
}
}
class Table_Model_2 extends AbstractTableModel {
public Vector content = new Vector();
String[] title_name = {"序号","学号","姓名","课程号","课程名","分数","学期"};
Object TMInfor [] = new Object[7];
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<7;i++)
TMInfor[i] = ((Vector)content.get(row)).get(i);
TMInfor[col] = value;
Vector temp_v = new Vector(7);
for(int i=0;i<7;i++)
temp_v.add(TMInfor[i]);
content.setElementAt(temp_v,row);
fireTableCellUpdated(row, col);
}
public void mySetValueAt(Object value, int row, int col) {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -