當前位置:成語大全網 - 英語詞典 - 壹個Java編寫的英漢詞典

壹個Java編寫的英漢詞典

說先說:妳的代碼有錯誤,在最下面,我已經該過了,不是大問題。

如果妳想學好java的話,可以根據這個代碼加上我的註解去理解,但不要學這個代碼的變成方式或者說變成習慣,這個代碼基本上無誤,但犯了壹些常識性問題,如果養成了這些不好的習慣對以後的編程會有壞的影響。

我是英文學的java,所以有些註解可能不通順,但我盡力而為了。 有的註解有點長,所以妳復制到編譯器後稍微編輯壹下就可以運行。代碼是可以運行,沒有問題的。

------------------------------------

import javax.swing.*; //用來創建圖形界面,如窗口,表格,按鈕等。

import java.awt.*; //作用同上,但已經很少用,能用swing的地方就不要用awt

import java.awt.event.*;//事件管理和控制

import java.sql.*; //數據庫語句和操作

import java.lang.System;//這個不知道

/*下面的這6個沒有用,純屬寫出來嚇人*/

import javax.swing.tree.*;

import javax.swing.event.*;

import java.util.*;

import javax.swing.border.*;

import javax.swing.table.*;

import java.lang.String.*;

class Mywindow extends JFrame implements ActionListener//這個類implements actionlistener,意思就是它自己就可以執行actionListener的任務

{

JTextField txf=new JTextField(20); //建壹個文字編輯框,長度20(只可以輸入壹行文字)

JTextArea jt=new JTextArea(10,30);//建壹個文字編輯區域,長10寬30(可以回車然後輸入多行文字)

JButton btn1=new JButton("查詢");//建壹個 查詢 按鈕

Mywindow()//構造函數,每個類必有的,可以為空

{

JFrame frm=new JFrame("Search");//建壹個窗口(讓其他的東西有地方可放,和容器壹樣。是3個最高級別的容器之壹,其他兩個是applet和window)

frm.setBounds(400,300,450,350);//設置大小和位置,前兩個是坐標,後兩個是大小

Container con=getContentPane();//建壹個awt容器對象,用來添加其他元素,最好用這個添加元素。像:frm.add(all); 可以寫成 con.add(all);

JPanel pnl4=new JPanel();//建壹個面板用來添加其他元素(第二級別容器,最後需要被添加在frame上)

pnl4.setBorder(BorderFactory.createTitledBorder("Search"));//設置邊框樣式

pnl4.add(txf);//把文字編輯框添加到面板上

pnl4.add(btn1);//把按鈕添加到面板上

btn1.addActionListener(this);//添加事件行為監聽器(this),this意思是當前對象,呼應 implements ActionListener

JPanel pnl5=new JPanel();//同上

pnl5.setBorder(BorderFactory.createTitledBorder("Result"));//同上

jt.setWrapStyleWord(true);//這個忘了

jt.setLineWrap(true);//在區域規定的寬度下,如果文字的輸入到壹行最後則會自動令其壹行繼續,如果是(false),文字輸入就會在這壹行繼續知道回車

pnl5.add(new JScrollPane(jt));//個這個面板添加右側滾動條,當文字輸入超過 長* 寬後 滾動條出現

JPanel all=new JPanel();//同上

all.setLayout(new BorderLayout());//設置布局,borderlayout()分東西南北(上下左右)中五個部分 無論窗口多大,中間占得面積最大

all.add(pnl4,BorderLayout.NORTH);//添加壹個面板在上面

all.add(pnl5,BorderLayout.CENTER);//添加壹個在中間

frm.add(all);//把最大的這個面板添加到窗口上 也可以用con.add(all);

frm.setVisible(true);//設置窗口顯示屬性 如果false就是不顯示

frm.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});//加壹個窗口監聽 如果點小紅叉關閉窗口則系統推出

}

public void actionPerformed(ActionEvent e)//作為ActionListener類的構造函數,如果妳的class implements ActionListenser, 那就必須得有這個,也可以單獨寫壹個class,不過有點麻煩

{

if(e.getSource()==btn1)//當按鈕被點擊的時候

{

String str="";//建壹個字符串

String tmp=this.txf.getText();//同上,這個字符串的值是當前對象(窗口)中,文本框輸入的值

for(int k=0;k<tmp.length();k++)//建壹個 永久循環

str+=tmp.charAt(k)+"%";//把 % 插入每壹個字符後面, 作用後面說

String sql=null;//同上

Statement stmt=null;//定義壹個stmt,用來建數據庫連接的

sql="select * from chinese where charsound like'"+str+"'";//創建壹個sql數據庫語句,但它本身還是壹個字符串

System.out.println(sql);//系統顯示創建的語句,通常找錯時候用的

try{//try 和 catch 的作用壹句兩句說不清楚 不知道妳就自己查查

Class.forName("com.mysql.jdbc.Driver");//或者:Class.forName("org.gjt.mm.mysql.Driver");關聯mysql數據庫驅動

Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/japan?user=root&password=sa");//建立連接,數據庫名japan(為什麽不是chinese?)用戶名root密碼sa

stmt=conn.createStatement();//建立statement對象,用來發送sql語句到數據庫

ResultSet rs=stmt.executeQuery(sql);//運行語句並建立壹個查詢結果的集合

System.out.println("\n------------------------search :"+str+"-------------------------------");//同上

jt.setText("");//清空文本編輯區域

while(rs.next())//while循環,當還有結果的時候,把所有查詢結果添加加到文本編輯區域中

{

jt.append(new String(rs.getString("charname").getBytes("iso-8859-1"),"gb2312")+"\t");

System.out.print(new String(rs.getString("charname").getBytes("iso-8859-1"),"gb2312")+"\t");

}

stmt.close();//關閉關連,很重要。

}

catch(Exception eq){System.out.println("error");}

//--------------------------------------------------------------end btn1-------

}

}

public static void main(String args[])

{

Mywindow win=new Mywindow();//建立壹個 mywindow 對象

win.pack();//將所有元素整合

win.show();

}

}