📄 infoframe.java
字号:
package studentmanagement;
//信息显示窗口
import java.awt.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
import java.awt.event.*;
import java.sql.*;
import java.io.*;
import sun.jdbc.odbc.JdbcOdbcDriver;
import java.util.*;
import java.awt.Font;
public class infoFrame extends JFrame {
XYLayout layoutM = new XYLayout();//布局
JTextField searchT = new JTextField();//输入框
//按钮
JButton changeB = new JButton();
JButton newB = new JButton();
JButton searchB = new JButton();
JButton freshB = new JButton();
JButton exitB = new JButton();
JButton delB = new JButton();
JScrollPane infoScrollPane = new JScrollPane();//带滚动条的JFrame容器
JLabel topwords = new JLabel();
JLabel infobg = new JLabel();
JList infolist = new JList();//JFrame
Vector vec = new Vector();//向量用来存储数据
public infoFrame() {
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
//-----------------------------界面继承JFrame--------------------------
private void jbInit() throws Exception {
getContentPane().setLayout(layoutM);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("学生记录信息显示");
ImageIcon infoImage=new ImageIcon("src/info.jpg");
layoutM.setWidth(640);
layoutM.setHeight(480);
searchB.setFont(new java.awt.Font("宋体", Font.PLAIN, 14));
searchB.setText("搜 索!");
searchB.addMouseListener(new infoFrame_searchB_mouseAdapter(this));
infoScrollPane.setForeground(new Color(33, 14, 0));
topwords.setForeground(new Color(234, 255, 255));
topwords.setToolTipText("");
newB.setFont(new java.awt.Font("宋体", Font.PLAIN, 14));
newB.addMouseListener(new infoFrame_newB_mouseAdapter(this));
freshB.setText("刷新");
freshB.addMouseListener(new infoFrame_freshB_mouseAdapter(this));
exitB.setFont(new java.awt.Font("宋体", Font.PLAIN, 14));
exitB.setText("关 闭");
exitB.addMouseListener(new infoFame_exitB_mouseAdapter(this));
infolist.setToolTipText("");
infolist.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
infolist.setVisibleRowCount(5);
infobg.setIcon(infoImage);
changeB.setText("修改");
changeB.addMouseListener(new infoFrame_changeB_mouseAdapter(this));
searchT.setToolTipText("");
searchT.setText("输入搜索关键字");
delB.setText("删除");
delB.addMouseListener(new infoFrame_delB_mouseAdapter(this));
topwords.setText("记录按[学号,姓名,性别,地址,电话]的方式显示:");
topwords.setFont(new java.awt.Font("宋体", Font.BOLD, 15));
infoScrollPane.getViewport().add(infolist);
this.getContentPane().add(infoScrollPane,
new XYConstraints(23, 61, 534, 314));
this.getContentPane().add(freshB, new XYConstraints(566, 73, 62, 26));
this.getContentPane().add(topwords, new XYConstraints(24, 26, 375, 26));
newB.setText("录入新记录");
this.getContentPane().add(changeB, new XYConstraints(566, 125, 62, 26));
this.getContentPane().add(searchT,
new XYConstraints(166, 406, 160, 26));
this.getContentPane().add(searchB, new XYConstraints(336, 406, 112, 26));
this.getContentPane().add(newB, new XYConstraints(33, 407, 106, 26));
this.getContentPane().add(exitB, new XYConstraints(485, 406, 112, 26));
this.getContentPane().add(delB, new XYConstraints(566, 176, 62, 26));
this.getContentPane().add(infobg, new XYConstraints(0, 0, 640, 375));
this.setBounds(170, 120, 640, 480);
prepare_connect();
}
//------------------------------从数据库读取--------------------------------
static String madguy =
"jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=";
Connection con;
String name_,num_,addr_,tel_,sex_;
public void prepare_connect() throws Error {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
DriverManager.registerDriver(new JdbcOdbcDriver());
con = DriverManager.getConnection(madguy + "src/data.mdb");
con.setAutoCommit(true);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from students");
vec.removeAllElements();
while (rs.next()) {
Vector record = new Vector();
record.addElement(rs.getString("num"));
record.addElement(rs.getString("name"));
record.addElement(rs.getString("sex"));
record.addElement(rs.getString("addr"));
record.addElement(rs.getString("tel"));
vec.addElement(record);
}
infolist.setListData(vec);
rs.close();
stmt.close();
} catch (ClassNotFoundException e) {
} catch (SQLException e) {
System.out.println(e.getMessage() + "\t");
}
}
//-----------------------------------搜索函数-------------------------------------------
public void search(String key){
if(key.equals("")){
ErrBox err=new ErrBox();
err.errinfo.setText("搜索不能为空!");
err.errinfoE.setText("Search Error");
}
searchname(key);
searchnum(key);
searchsex(key);
searchaddr(key);
searchtel(key);
if(vec.isEmpty()){
vec.addElement("数据库中未找到相关数据");
}
}
//-----------------------------------修改函数---------------------------------------
public void edit(String number) throws Error {
try {
con = DriverManager.getConnection(madguy + "src/data.mdb");
con.setAutoCommit(true);
String numSQL = "SELECT * FROM students WHERE num=?";
PreparedStatement pstmt = con.prepareStatement("" + numSQL);
pstmt.setString(1, number);
ResultSet rs = pstmt.executeQuery();
while(rs.next()) {//获得修改的源属性值,保存
num_=rs.getString("num");
name_=rs.getString("name");
addr_=rs.getString("addr");
tel_=rs.getString("tel");
}
rs.close();
pstmt.close();
con.close();
//从数据库删除源信息
useData kill = new Data(new File("src/data.mdb"));
kill.delete(number);
//返回录入界面,修改后重新录入
regFrame change=new regFrame();
change.setTitle("修改记录窗口");
change.addT.setText(addr_);
change.name.setText(name_);
change.numT.setText(num_);
change.telT.setText(tel_);
change.enter.setText("提交修改");
change.quit.setEnabled(false);
change.setVisible(true);
} catch (Exception exception) {
exception.printStackTrace();
}
}
//-----------------------------------搜索姓名----------------------------------------
public void searchname(String key) throws Error {
try {
con = DriverManager.getConnection(madguy + "src/data.mdb");
con.setAutoCommit(true);
String nameSQL = "SELECT * FROM students WHERE name=?";
PreparedStatement pstmt = con.prepareStatement("" + nameSQL);
pstmt.setString(1, key);
ResultSet rs = pstmt.executeQuery();
while(rs.next()) {
Vector record = new Vector();
record.addElement(rs.getString("num"));
record.addElement(rs.getString("name"));
record.addElement(rs.getString("sex"));
record.addElement(rs.getString("addr"));
record.addElement(rs.getString("tel"));
vec.addElement(record);
}
infolist.setListData(vec);
rs.close();
pstmt.close();
con.close();
} catch (Exception exception) {
exception.printStackTrace();
}
}
//---------------------------------搜索学号------------------------------------------
public void searchnum(String key) throws Error {
try {
con = DriverManager.getConnection(madguy + "src/data.mdb");
con.setAutoCommit(true);
String numSQL = "SELECT * FROM students WHERE num=?";
PreparedStatement pstmt = con.prepareStatement("" + numSQL);
pstmt.setString(1, key);
ResultSet rs = pstmt.executeQuery();
while(rs.next()) {
Vector record = new Vector();
record.addElement(rs.getString("num"));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -