import java.awt.*;import .*;import java.sql.*;import java.awt.event.*;import java.io.*;import java.util.Calendar;class DataWindow extends Frame implements ActionListener{ TextField searchWord_tField,expWord_tField,searchChineseField,expEnglishField,updWord_tField,updExpWord_tField,addNewWord_tField,addExpWord_tField;Button search_button,update_button,add_button,searchChinese_buton;int search_record=0;Connection Con=null;Statement Stmt=null;DataWindow(){ super("英汉小词典");setBounds(150,150,600,400);setVisible(true);message_log("DataWindow Start : ");try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){}try{Con=DriverManager.getConnection("jdbc:odbc:data","lixuanxian","123");Stmt=Con.createStatement();message_log("Stmt="+Stmt);}catch(SQLException ee) {}searchWord_tField=new TextField(16);expWord_tField=new TextField(16);searchChineseField=new TextField(16);expEnglishField=new TextField(16);updWord_tField=new TextField(16);updExpWord_tField=new TextField(16);addNewWord_tField=new TextField(16);addExpWord_tField=new TextField(16);searchChinese_buton=new Button("确定");search_button=new Button("查询");update_button=new Button("更新");add_button=new Button("添加");Panel p1=new Panel(),p2=new Panel(),p3=new Panel(),p4=new Panel(),pset=new Panel(new GridLayout(5,2));p1.add(new Label("输入要查询的英语单词:"));p1.add(searchWord_tField);p1.add(new Label("显示英语单词的汉语解释:"));p1.add(expWord_tField);p1.add(search_button);p4.add(new Label("输入要查询的汉语:"));p4.add(searchChineseField);p4.add(new Label("显示英语单词的英文解释:"));p4.add(expEnglishField);p4.add(searchChinese_buton);p2.add(new Label("输入英语单词:"));p2.add(updWord_tField);p2.add(new Label("输入该单词更新的汉语解释:"));p2.add(updExpWord_tField);p2.add(update_button);p3.add(new Label("输入英语单词:"));p3.add(addNewWord_tField);p3.add(new Label("输入汉语解释:"));p3.add(addExpWord_tField);p3.add(add_button);pset.add(p1);pset.add(p4);pset.add(p2);pset.add(p3);add(pset);search_button.addActionListener(this);update_button.addActionListener(this);add_button.addActionListener(this);searchChinese_buton.addActionListener(this);addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e){ setVisible(false);System.exit(0);}});}public void actionPerformed(ActionEvent e){if (e.getSource()==search_button){search_record=0;try { query();}catch (SQLException ee) {}}else if (e.getSource()==update_button){try { modify();}catch (SQLException ee) {}}else if (e.getSource()==add_button){try { addNew();}catch (SQLException ee) {}}else if (e.getSource()==searchChinese_buton){try { queryChinese();}catch (SQLException ee) {}}}public void query() throws SQLException{message_log("query start");String cname, ename,text="'"+searchWord_tField.getText().trim()+"'";Con=DriverManager.getConnection("jdbc:odbc:data","lixuanxian","123");message_log("Con="+Con);ResultSet rs=Stmt.executeQuery("SELECT * FROM dict where English="+text);int n=0;message_log("in query : n="+n);while (rs.next()){message_log("while start " );ename=rs.getString("English"); cname=rs.getString("Chinese");message_log(ename+" "+cname);if(ename.trim().equals(searchWord_tField.getText().trim())){message_log("equal");message_log("in query : ename="+ename+" cname="+cname);expWord_tField.setText(cname);search_record=1;break;}message_log("not equal");}if(search_record==0){expWord_tField.setText("没有该单词");}}public void queryChinese() throws SQLException{message_log("queryChinese start");String cname, ename,text="'"+searchChineseField.getText().trim()+"'";Con=DriverManager.getConnection("jdbc:odbc:data","lixuanxian","123");message_log("Con="+Con);ResultSet rs=Stmt.executeQuery("SELECT * FROM dict where Chinese="+text);int n=0;message_log("in query : n="+n);while (rs.next()){message_log("while start " );ename=rs.getString("English"); cname=rs.getString("Chinese");message_log(cname+" "+ename);if(cname.trim().equals(searchChineseField.getText().trim())){message_log("equal");message_log("in query : cname="+cname+"ename="+ename);expEnglishField.setText(ename);search_record=1;break;}message_log("not equal");}if(search_record==0){expEnglishField.setText("没有该词语");}}public void modify() throws SQLException{message_log("modify start");String s1="'"+updWord_tField.getText().trim()+"'",s2="'"+updExpWord_tField.getText().trim()+"'";String temp="UPDATE dict SET Chinese=" +s2+" WHERE English= "+s1;Con=DriverManager.getConnection("jdbc:odbc:data","lixuanxian","123");Stmt.executeUpdate(temp);updWord_tField.setText(null);updExpWord_tField.setText(null);Con.close();}public void addNew() throws SQLException{message_log("addNew start");String s1="'"+addNewWord_tField.getText().trim()+"'",s2="'"+addExpWord_tField.getText().trim()+"'";String temp="INSERT INTO dict VALUES("+ s1+", "+s2+")";Con=DriverManager.getConnection("jdbc:odbc:data","lixuanxian","123");Stmt.executeUpdate(temp);addNewWord_tField.setText(null);addExpWord_tField.setText(null);Con.close();}public void message_log(String msg){try {java.util.Date RightNow = Calendar.getInstance().getTime();java.text.SimpleDateFormat LOG_FILENAME_SDF=new java.text.SimpleDateFormat("yyyyMMdd");java.text.SimpleDateFormat SMS_LOG_DETAIL_TIME=new java.text.SimpleDateFormat("yyyy/MM/dd HH:mm:ss ");// get the Log File LocationFileOutputStream fos;fos = new FileOutputStream("F:\\李选贤\\java\\英汉小词典\\log\\"+LOG_FILENAME_SDF.format(RightNow) + "_Database.log" ,true);PrintWriter pw = new PrintWriter(fos);pw.print(SMS_LOG_DETAIL_TIME.format(RightNow));pw.println(" " + msg);pw.close();fos.close();} catch (Exception ex) {System.out.println(msg);System.out.println("SMSMsgLog: Error \r\n"+ex.getMessage());ex.printStackTrace();}}}public class dictionary{public static void main(String args[]){DataWindow window1=new DataWindow();window1.pack();}}。