这个电子词典的代码主要包含连接调用数据库,建立窗口,向窗口里面加入面板,以及向面板里面加入组件
电子词典用的词汇表是MySQL里面建立的,所以写程序之前需要知道怎么用Java连接到MySQL, 首先你需要安装连接MySQL的驱动,下面先介绍的是eclipse装驱动的方法,然后介绍源代码
- 首先在eclipse里面建一个工程,然后用鼠标右键单击这个工程新建一个Folder,命名为lib,然后你就会发现工程下面有一个lib文件,右键单击lib将你事先下载好的驱动复制到里面,如下图所示:
- 然后右键点击lib中复制进去的驱动选择Build Path然后在点击Add to Build Path即可,这样驱动就安装好了。
词典的源代码如下:
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class CiDian extends JFrame implements ActionListener {
JTextField txf=new JTextField(30);//建一个文字输入框长为30
JTextArea jt=new JTextArea(40,40);//建一个文本框
JButton btn1=new JButton("查询");
public CiDian(){
Container container=getContentPane();
container.setLayout(new GridLayout(2,2,10,10));//设置行、列、行间隙、列间隙
JPanel a = new JPanel();//建一个面板
a.setBorder(BorderFactory.createTitledBorder("请输入:"));//输入面板的名
container.add(a);//向窗口里加一个面板
a.add(txf);//向a面板里加入输入框
a.add(btn1);//向a面板里加入按键
btn1.addActionListener(this);//添加监听器
JPanel a1 = new JPanel();//建立一个面板
//jt.setWrapStyleWord(true);
a1.setBorder(BorderFactory.createTitledBorder("查询结果:"));//输入面板的名
container.add(a1);
a1.add(jt);
}
public void actionPerformed(ActionEvent e)//作为ActionListener类的构造函数,如果你的class implements ActionListenser, 那就必须得有这个,也可以单独写一个class,不过有点麻烦
{
if(e.getSource()==btn1)//当按钮被点击的时候
{
String tmp=this.txf.getText();//这个字符串的值是当前对象(窗口)中,文本框输入的值
String sql=null;//定义一个sql
Statement stmt=null;//定义一个stmt,用来建数据库连接的
sql="select * from cidian";//创建一个sql数据库语句,但它本身还是一个字符串
try{
Class.forName("com.mysql.jdbc.Driver");
//或者:Class.forName("org.gjt.mm.mysql.Driver");//关联mysql数据库驱动
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/chaxun?useSSL=false","root","123456");
stmt=conn.createStatement();//建立对象,用来发送sql语句到数据库
System.out.println("数据库连接成功");
ResultSet result=stmt.executeQuery(sql);//运行语句并建立一个查询结果的集合
jt.setText("");//清空文本编辑区域
boolean b = false;//定义一个变量
while(result.next())//while循环,当还有结果的时候,把所有查询结果添加加到文本编辑区域中
{
String chinese=result.getString("chinese");//获取chinese这列数据
String english=result.getString("english");//获取english这列数据
if(tmp.equalsIgnoreCase(chinese)){//输入的汉字存在于表中则执行
System.out.println(english);//输出对应的英文
jt.setText(" 你查找的词的英文翻译是: "+english);//在文本框中显示对应的英文
b=true;
}
}
if(!b){//输入的词不存在
System.out.println("你所查找的词找不到!");
jt.setText("你所查找的词找不到!");
}
stmt.close();//关闭链接。
}
catch(Exception eq){System.out.print("数据库了连接失败");}
}
}
public void launchFrame(){
this.setTitle("MrTian电子词典");//设置窗口标题
this.setVisible(true);//显示窗口
this.setSize(500,500);//设置大小
this.setLocation(300, 300);//设置位置
this.addWindowListener(new WindowAdapter(){ //设置一个关闭窗口的方法
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args){
CiDian f=new CiDian();
f.launchFrame();
}
}
运行结果如下图所示: