用Java编译的电子词典(包含MySQL,词典为单独的一个窗口)

这个电子词典的代码主要包含连接调用数据库,建立窗口,向窗口里面加入面板,以及向面板里面加入组件

电子词典用的词汇表是MySQL里面建立的,所以写程序之前需要知道怎么用Java连接到MySQL, 首先你需要安装连接MySQL的驱动,下面先介绍的是eclipse装驱动的方法,然后介绍源代码

  1. 首先在eclipse里面建一个工程,然后用鼠标右键单击这个工程新建一个Folder,命名为lib,然后你就会发现工程下面有一个lib文件,右键单击lib将你事先下载好的驱动复制到里面,如下图所示:
    这里写图片描述
  2. 然后右键点击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();    
    }       
    }

运行结果如下图所示:

这里写图片描述

猜你喜欢

转载自blog.csdn.net/Mrchongyang/article/details/82561918