Colección de citas famosas - Consulta de diccionarios - Un diccionario inglés-chino escrito en Java

Un diccionario inglés-chino escrito en Java

Permíteme comenzar con esto: hay un error en tu código, está en la parte inferior, debería haberlo superado, no es un gran problema.

Si quieres aprender bien Java, puedes seguir este código y agregar mis anotaciones para comprenderlo, pero no aprendas la forma en que está escrito este código ni te conviertas en un hábito. Este código es básicamente correcto. pero está mal. Algunas cuestiones de sentido común, si desarrolla estos malos hábitos, tendrán un impacto negativo en la programación futura.

Aprendí Java en inglés, por lo que es posible que algunas de las anotaciones no sean fluidas, pero hice lo mejor que pude. Algunas anotaciones son un poco largas, por lo que puedes ejecutarlas después de copiarlas en el compilador y editarlas un poco. El código puede ejecutarse sin ningún problema.

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

import javax.swing.*; //Se utiliza para crear interfaces gráficas, como ventanas, tablas, botones, etc.

import java.awt.*; //La misma función que la anterior, pero ya no se usa awt donde se puede usar swing

import java.awt.event.* ; //Gestión y control de eventos

import java.sql.*; //Declaraciones y operaciones de bases de datos

import java.lang.System;//No sé nada de esto.

/*Los siguientes 6 son inútiles, están escritos exclusivamente para asustar a la gente*/

import javax.swing.tree.*;

import javax. swing.event.* ;

importar java.util.*;

importar javax.swing.border.*;

importar javax.swing.table. *;

import java.lang.String.*;

clase Mywindow extiende JFrame implementa ActionListener//Esta clase implementa actionlistener, lo que significa que puede realizar las tareas de actionListener por sí misma

{

JTextField txf=new JTextField(20); //Crea un cuadro de edición de texto con una longitud de 20 (solo se puede ingresar una línea de texto)

JTextArea jt=new JTextArea(10,30 );//Crea un área de edición de texto, de 10 cm de largo y 30 cm de ancho (puedes presionar Enter e ingresar varias líneas de texto)

JButton btn1 =new JButton("Query");//Crear un botón de consulta

Mywindow()//Constructor, cada clase debe tenerlo, puede estar vacío

{

JFrame frm=new JFrame("Search");/ /Crea una ventana (para darle a otras cosas un lugar para colocar, como un contenedor. Es uno de los tres contenedores de nivel más alto, los otros dos son subprogramas y window)

frm.setBounds(400,300,450,350); //Establece el tamaño y la posición, las dos primeras son coordenadas, las dos últimas son tamaño

Container con=getContentPane();/ /Cree un objeto contenedor awt para agregar otros elementos, es mejor usar esto Agregar elementos.

Como: frm.add(all); se puede escribir como con.add(all);

JPanel pnl4=new JPanel();// Cree un panel para agregar otros elementos (contenedor de segundo nivel, último Debe agregarse al marco)

pnl4.setBorder(BorderFactory.createTitledBorder("Search"));//Establecer el estilo del borde

pnl4.add(txf); //Poner Agregar el cuadro de edición de texto al panel

pnl4.add(btn1);//Agregar el botón al panel

btn1.addActionListener(this);//Agregar un detector de comportamiento de eventos (this), esto significa el objeto actual, que se hace eco de las implementaciones ActionListener

JPanel pnl5=new JPanel();//Igual que arriba

pnl5.setBorder(BorderFactory. createTitledBorder("Result") );//Igual que arriba

jt.setWrapStyleWord(true);//Me olvidé de esto

jt.setLineWrap(true);//Bajo el ancho especificado por el área, si el texto Ingresar hasta el final de una línea continuará automáticamente la línea. Si es (falso), la entrada de texto continuará en esta línea hasta que presione Entrar

pnl5. add(new JScrollPane(jt));// Este panel agrega una barra de desplazamiento en el lado derecho Cuando la entrada de texto excede el largo * ancho, aparece la barra de desplazamiento

JPanel all=new JPanel(). ;//Igual que arriba

all.setLayout(new BorderLayout ());//Establezca el diseño, borderlayout() se divide en cinco partes: este, oeste, sur, norte (arriba, abajo, izquierda, derecha). No importa qué tan grande sea la ventana, la del medio ocupa el área más grande

all.add(pnl4,BorderLayout.NORTH //Agrega un panel en la parte superior

all.add(pnl5,BorderLayout.CENTER);//Agregar uno en el medio

frm.add(all);//Pon el más grande Este panel también se puede agregar a la ventana usando con. add(all);

frm.setVisible(true);//Establezca el atributo de visualización de la ventana si es falso, no se mostrará

addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){System.exit(0);}});//Agrega un detector de ventana Si haces clic en la pequeña cruz roja para cerrar la ventana, el sistema saldrá

}

public void actionPerformed(ActionEvent e)// Como constructor de la clase ActionListener, si tu clase implementa ActionListenser, debes tener esto, también puedes escribir una clase separada, pero es un poco problemático < /p >

{

if(e.getSource()==btn1)//Cuando se hace clic en el botón

{

String str= " ";//Crear una cadena

String tmp=this.txf.getText();//Igual que arriba, el valor de esta cadena es el valor ingresado en el cuadro de texto en el objeto actual ( ventana)

p>

for(int k=0;k

str+=tmp.charAt(k)+"%";//Insertar % en cada Después el carácter, se explica la función

String sql=null;//Igual que arriba

Declaración stmt=null;//Defina un stmt utilizado para establecer una conexión a la base de datos

sql="select * from chino donde los caracteres suenan como'"+str+"'";//Crea una declaración de base de datos SQL, pero sigue siendo una cadena en sí misma

System.out.println( sql) ;//El sistema muestra la declaración creada, generalmente utilizada para encontrar errores

try{// Las funciones de try y catch no se pueden explicar claramente en una o dos oraciones si no lo sabe. , puedes comprobarlo tú mismo

Class.forName("com.mysql.jdbc.Driver");//o: Class.forName("org.gjt.mm.mysql.Driver"); controlador de base de datos mysql

Conexión conn =DriverManager.getConnection("jdbc:mysql://localhost/japan?user=root&password=sa");//Establecer una conexión, nombre de la base de datos Japón (¿por qué no chino? ) nombre de usuario raíz contraseña sa

stmt=conn.createStatement();//Crear un objeto de declaración para enviar declaraciones SQL a la base de datos

ResultSet rs=stmt.executeQuery(sql) ;//Ejecute la declaración y cree un conjunto de resultados de la consulta

System.out.println("\n--------------------- buscar :"+str+"----- --------------------------");//Igual que arriba

jt.setText("");//Borrar área de edición de texto

while(rs.next())//bucle while, cuando todavía hay resultados, agrega todos los resultados de la consulta a la edición de texto área

{

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();//Cerrar la relación, muy importante.

}

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

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

}

}

public static void main(String args[])

{

Mywindow win=new Mywindow();//Crear un objeto mywindow

win.pack();//Integrar todos los elementos

win.show();

}

}