一、思路:
創(chuàng)新互聯(lián)是一家以網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、品牌設(shè)計(jì)、軟件運(yùn)維、網(wǎng)站推廣、小程序App開發(fā)等移動(dòng)開發(fā)為一體互聯(lián)網(wǎng)公司。已累計(jì)為資質(zhì)代辦等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開發(fā)服務(wù)。
1、建立一個(gè)String數(shù)組,用來存儲(chǔ)用戶輸入的水果名字。
2、按字典出現(xiàn)的先后順序即比較字符串大小。可以使用到String對(duì)象的compareTo()方法。
3、對(duì)比大小后,升序輸出。
二、實(shí)現(xiàn):
1、定義輸入水果名字的個(gè)數(shù),用來確定數(shù)組的大小,修改此值可以修改數(shù)組的大小。
2、用戶輸入,用循環(huán)實(shí)現(xiàn)接收,并存儲(chǔ)到數(shù)組中。
3、將數(shù)據(jù)對(duì)比大小,按升序排列。使用最簡(jiǎn)單的冒泡排序法(麻煩易錯(cuò))或Java的工具類(簡(jiǎn)單高效)。
4、輸出排序后的數(shù)組。
實(shí)現(xiàn)代碼:
//java代碼:輸入五種水果的英文,按字典出現(xiàn)的先后順序循環(huán)輸出。
import?java.util.Arrays;
import?java.util.Scanner;
public?class?CompareTest?{
/**
?*?一、思路:
?*?1、建立一個(gè)String數(shù)組,用來存儲(chǔ)用戶輸入的水果名字。
?*?2、按字典出現(xiàn)的先后順序即比較字符串大小??梢允褂玫絊tring對(duì)象的compareTo()方法。
?*?3、對(duì)比大小后,升序輸出。
?*?二、實(shí)現(xiàn):
?*?1、定義輸入水果名字的個(gè)數(shù),用來確定數(shù)組的大小,修改此值可以修改數(shù)組的大小。
?*?2、用戶輸入,用循環(huán)實(shí)現(xiàn)接收,并存儲(chǔ)到數(shù)組中。
?*?3、將數(shù)據(jù)對(duì)比大小,按升序排列。使用最簡(jiǎn)單的冒泡排序法(麻煩易錯(cuò))或Java的工具類(簡(jiǎn)單高效)。
?*?4、輸出排序后的數(shù)組。
?*?*/
//定義用戶輸入數(shù)據(jù)的個(gè)數(shù),修改此值可以修改個(gè)數(shù)及數(shù)據(jù)接收數(shù)組的大小
public?static?final?int?COUNT?=?5;
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
//定義接收用戶輸入數(shù)據(jù)的數(shù)組
String[]?fruits?=?new?String[COUNT];
Scanner?reader?=?new?Scanner(System.in);
//接收用戶輸入的數(shù)據(jù)
System.out.println("請(qǐng)輸入"+COUNT+"個(gè)水果的英文名字:");
for(int?i?=?0;i??COUNT;i++){
fruits[i]?=?reader.next();
}
reader.close();
//比較數(shù)組中數(shù)據(jù)的大小,并按升序排列。冒泡法
for(int?i?=?1;i?=?(COUNT-1);i++){
for(int?n?=?0;n??(COUNT-i);n++){
if(fruits[n].compareTo(fruits[n+1])??0){
String?temp?=?null;
temp?=?fruits[n];
fruits[n]?=?fruits[n+1];
fruits[n+1]?=?temp;
}
}
}
//不使用冒泡排序,使用java自帶的工具類,一句話即可,排序由底層自動(dòng)完成
//Arrays.sort(fruits);
//輸出排序后的數(shù)組,即為字典中的出現(xiàn)順序
System.out.println("這些水果的英文名在字典中出現(xiàn)的順序是:");
for(int?i?=0;i??COUNT;i++){
System.out.print(fruits[i]?+?"?");
}
System.out.println();
}
}
運(yùn)行結(jié)果圖:
應(yīng)注意:程序中使用的比較方式是區(qū)分大小寫的,如果是不區(qū)分大小寫的比較方式,應(yīng)使用compareToIgnoreCase()方法。
省力點(diǎn)的就直接調(diào)用第三方翻譯接口,然后可以保存到本地?cái)?shù)據(jù)庫,本地?cái)?shù)據(jù)庫也提供維護(hù)功能。 簡(jiǎn)單點(diǎn)的就只自己維護(hù)數(shù)據(jù)庫,這是個(gè)人意見哦
Dictionary對(duì)象用于存儲(chǔ)數(shù)據(jù)關(guān)鍵字和條目對(duì)(即類似“key=value”的形式)。它可以存取任何形式的數(shù)據(jù)的條目。每個(gè)條目都與一個(gè)唯一的關(guān)鍵字相關(guān)聯(lián)。該關(guān)鍵字用來檢索單個(gè)條目,通常是整數(shù)或字符串,可以是除數(shù)組外的任何類型。
下面的代碼舉例說明了如何創(chuàng)建一個(gè) Dictionary 對(duì)象:
Dim d '創(chuàng)建一個(gè)變量
Set d = CreateObject(Scripting.Dictionary)
d.Add "a", "Athens" '添加一些關(guān)鍵字和條目
d.Add "b", "Belgrade"
d.Add "c", "Cairo"
Dictionary常用的操作有Add(添加)、Remove(刪除)、Exists(檢查某個(gè)關(guān)鍵字是否在字典中);常用的屬性有Item(key)(獲取某個(gè)關(guān)鍵字對(duì)應(yīng)的數(shù)據(jù)),等等。
差不多就有點(diǎn)象平時(shí)我們?cè)谒惴ㄖ刑岬降腍ashTable吧。
Map可以實(shí)現(xiàn)類似數(shù)據(jù)庫的功能。比如一個(gè)人的姓名和年齡信息你可以存在一個(gè)Map里面,就像這樣:
MapString, Integer map = new HashMapString, Integer();
map.put("張三", 40);
System.out.println("張三的年齡是:" + map.get("張三");
package zyhz;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.io.*;
import com.sun.media.sound.*;
public class Dictionary {
public Dictionary() {
}
public static void main(String[] args)
{
dicFrame frame = new dicFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class dicFrame extends JFrame
{
public dicFrame()
{
setTitle("Dictionary");
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
panel = new JPanel();
add(panel);
//菜單欄
JMenu fileMenu = new JMenu("文件");
JMenuItem ECItem = new JMenuItem("英漢字典");
ECItem.addActionListener(new
AbstractAction(){
public void actionPerformed(ActionEvent event)
{
text2.setText("請(qǐng)?jiān)谏厦孑斎胗⑽模。。。?);
}
});
JMenuItem CEItem = new JMenuItem("漢英字典");
CEItem.addActionListener(new
AbstractAction(){
public void actionPerformed(ActionEvent event)
{
text2.setText("請(qǐng)?jiān)谏厦孑斎胫形模。。。?);
}
});
//備份詞庫
JMenuItem BackupItem = new JMenuItem("備份詞庫");
BackupItem.addActionListener(new
AbstractAction(){
public void actionPerformed(ActionEvent event)
{
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ce) {
System.out.println(ce);
}
url = "jdbc:odbc:test";
String fileName;
chooser = new JFileChooser();
frame = new JFrame();
chooser.setDialogTitle("備份詞庫為");
try {
flag = chooser.showSaveDialog(frame);
} catch (HeadlessException h) {
System.out.println("Save File Dialog ERROR!");
}
if (flag == JFileChooser.APPROVE_OPTION) {
f = chooser.getSelectedFile();
fileName = chooser.getName(f);
fileName = chooser.getSelectedFile().getPath();
try {
File saveFile = new File(fileName);
FileWriter fw = new FileWriter(saveFile);
try
{
con = DriverManager.getConnection(url);
s = con.createStatement();
rs = s.executeQuery("SELECT * from 字典 ");
while (rs.next()) {
String a = rs.getString("單詞");
String b = rs.getString("詞語解釋");
text2.append(a+b+"\n");
}
rs.close();
} catch (Exception ea) {
text2.setText("查詢數(shù)據(jù)失敗");
}
fw.write(text2.getText());
fw.close();
} catch (IOException ec) {
text2.setText(fileName);
}
text2.setText("詞庫備份成功!");
}
}
});
fileMenu.add(ECItem);
fileMenu.add(CEItem);
fileMenu.add(BackupItem);
fileMenu.addSeparator();
//退出監(jiān)聽器
fileMenu.add(new
AbstractAction("退出")
{
public void actionPerformed(ActionEvent event)
{
System.exit(0);
}
});
JMenu editMenu = new JMenu("編輯");
JMenuItem addItem = new JMenuItem("添加詞匯");
addItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
//菜單欄增加監(jiān)聽器
addItem.addActionListener(new
AbstractAction(){
public void actionPerformed(ActionEvent event)
{
if(text1.getText().equals(""))
text2.setText("沒有輸入內(nèi)容!請(qǐng)重新增加!??!");
else
{
String s=text1.getText().trim();
String s1=text2.getText().trim();
text2.setText(new add().jadd(text1.getText().trim(),text2.getText().trim()));
text2.append(s+"\n"+s1+";"+" "+"http://"+"該內(nèi)容已增加!?。?);
}
}
});
//菜單欄修改監(jiān)聽器
JMenuItem updateItem = new JMenuItem("修改詞匯");
updateItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,InputEvent.CTRL_MASK));
updateItem.addActionListener(new
AbstractAction(){
public void actionPerformed(ActionEvent event)
{
if(text1.getText().equals(""))
text2.setText("沒輸入所要修改的內(nèi)容!請(qǐng)重新輸入!?。。?);
else{
String s=text1.getText().trim();
text2.setText(new update().jupdate(text1.getText().trim(),
text2.getText().trim()));
text2.append(s+" "+"http://"+"該內(nèi)容已修改?。?!");
}
}
});
//菜單欄刪除監(jiān)聽器
JMenuItem deleteItem = new JMenuItem("刪除詞匯");
deleteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,InputEvent.CTRL_MASK));
deleteItem.addActionListener(new
AbstractAction(){
public void actionPerformed(ActionEvent event)
{
if(text1.getText().equals(""))
text2.setText("沒輸入所要?jiǎng)h除的內(nèi)容!請(qǐng)重新輸入?。。?!");
else{
String s=text1.getText().trim();
text2.setText(new delete().jdelete(text1.getText().trim()));
text2.append(s+" "+"http://"+"該內(nèi)容已刪除!??!");
}
}
});
editMenu.add(addItem);
editMenu.add(updateItem);
editMenu.add(deleteItem);
JMenu helpMenu = new JMenu("Help");
helpMenu.setMnemonic('H');
aboutItem = new JMenuItem("About");
aboutItem.setMnemonic('A');
aboutItem.addActionListener(new
AbstractAction(){
public void actionPerformed(ActionEvent event)
{
new guanyu();
}
});
helpMenu.add(aboutItem);
menubar = new JMenuBar();
setJMenuBar(menubar);
menubar.add(fileMenu);
menubar.add(editMenu);
menubar.add(helpMenu);
//工具欄
label = new JLabel("請(qǐng)輸入:");
text1= new JTextField("");
selectButton = new JButton("查詢");
//工具欄查詢監(jiān)聽器
selectButton.addActionListener(new
AbstractAction(){
public void actionPerformed(ActionEvent event)
{
if(text1.getText().equals(""))
text2.setText("沒有輸入查詢內(nèi)容!請(qǐng)重新輸入?。?!");
else text2.setText(new select().jselect(text1.getText().trim()));
}
});
//工具欄增加監(jiān)聽器
addButton = new JButton("增加");
addButton.addActionListener(new
AbstractAction(){
public void actionPerformed(ActionEvent event)
{
if(text1.getText().equals(""))
text2.setText("沒有輸入內(nèi)容!請(qǐng)重新增加?。?!");
else
{
String s=text1.getText().trim();
String s1=text2.getText().trim();
text2.setText(new add().jadd(text1.getText().trim(),text2.getText().trim()));
text2.append(s+"\n"+s1+";"+" "+"http://"+"該內(nèi)容已增加!??!");
}
}
});
//工具欄修改監(jiān)聽器
updateButton = new JButton("修改");
updateButton.addActionListener(new
AbstractAction(){
public void actionPerformed(ActionEvent event)
{
if(text1.getText().equals(""))
text2.setText("沒輸入所要修改的內(nèi)容!請(qǐng)重新輸入?。。?!");
else{
String s=text1.getText().trim();
text2.setText(new update().jupdate(text1.getText().trim(),
text2.getText().trim()));
text2.append(s+" "+"http://"+"該內(nèi)容已修改?。。?);
}
}
});
//工具欄刪除監(jiān)聽器
deleteButton = new JButton("刪除");
deleteButton.addActionListener(new
AbstractAction(){
public void actionPerformed(ActionEvent event)
{
if(text1.getText().equals(""))
text2.setText("沒輸入所要?jiǎng)h除的內(nèi)容!請(qǐng)重新輸入!?。?!");
else{
String s=text1.getText().trim();
text2.setText(new delete().jdelete(text1.getText().trim()));
text2.append(s+" "+"http://"+"該內(nèi)容已刪除!??!");
}
}
});
soundButton = new JButton("讀音");
soundButton.addActionListener(new
AbstractAction(){
public void actionPerformed(ActionEvent event)
{
JavaSoundAudioClip player;
try{
strsound = text2.getText().trim();
FileInputStream ff = new FileInputStream("sound//"+strsound+".wav");
player = new JavaSoundAudioClip(ff);
player.play();
}
catch(Exception e) {
System.out.println("error");
e.printStackTrace();
}
}
});
//萬年歷
dateButton = new JButton("萬年歷");
dateButton.addActionListener(new
AbstractAction() {
public void actionPerformed(ActionEvent event)
{
new calendar();
}
});
toolbar = new JToolBar();
add(toolbar,BorderLayout.NORTH);
toolbar.add(label);
toolbar.add(text1);
toolbar.add(selectButton);
toolbar.add(addButton);
toolbar.add(updateButton);
toolbar.add(deleteButton);
toolbar.add(soundButton);
toolbar.add(dateButton);
text2 = new JTextArea(8,40);
text2.setLineWrap(true);
JScrollPane scroll = new JScrollPane(text2);
add(scroll,BorderLayout.CENTER);
//快捷菜單 剪切,復(fù)制,粘貼
JPopupMenu popup= new JPopupMenu();
text2.setComponentPopupMenu(popup);
popup.add(new
AbstractAction("剪切",new ImageIcon("cut.gif"))
{
public void actionPerformed(ActionEvent event)
{
text2.cut();
}
});
popup.add(new
AbstractAction("復(fù)制",new ImageIcon("copy.gif"))
{
public void actionPerformed(ActionEvent event)
{
text2.copy();
}
});
popup.add(new
AbstractAction("粘貼",new ImageIcon("paste.gif"))
{
public void actionPerformed(ActionEvent event)
{
text2.paste();
}
});
text1.setComponentPopupMenu(popup);
}
public static final int DEFAULT_WIDTH = 400;
public static final int DEFAULT_HEIGHT = 250;
private JPanel panel;
private JMenuBar menubar;
private JToolBar toolbar;
private JLabel label;
private JTextField text1;
private JTextArea text2;
private JButton selectButton;
private JButton addButton;
private JButton updateButton;
private JButton deleteButton;
private JButton soundButton;
private JButton dateButton;
private JMenuItem aboutItem;
private Connection con;
private String url;
private Statement s;
private ResultSet rs;
public BufferedWriter Buffer;
private JFileChooser chooser;
private File f;
private JFrame frame;
private int flag;
private boolean b1;
private String strsound;
}
//查詢類
class select {
private Connection con;
private String url;
private PreparedStatement pstmt;
private String sql,zz;
private ResultSet rs;
select() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ce) {
System.out.println(ce);
}
url = "jdbc:odbc:test";
}
public String jselect(String str) {
try {
con = DriverManager.getConnection(url);
sql = "select 詞語解釋 from 字典 where 單詞=?";
pstmt= con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
pstmt.setString(1,str);
rs = pstmt.executeQuery();
while (rs.next()) {
System.out.print(rs.getString(1));
zz=rs.getString(1);
System.out.println(" ");
}
rs.close();
pstmt.close();
con.close();
} catch (SQLException ce) {
System.out.println(ce);}
return zz;
}
}
//增加類
class add {
private Connection con;
private String url;
private PreparedStatement pstmt;
private String sql,sql1,zz;
private ResultSet rs;
add() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ce) {
System.out.println(ce);
}
url = "jdbc:odbc:test";
}
public String jadd(String str1,String str2) {
try {
con = DriverManager.getConnection(url);
sql = "insert into 字典 values(?,?)";
pstmt= con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
pstmt.setString(1,str1);
pstmt.setString(2,str2);
pstmt.executeUpdate();
Statement s = con.createStatement();
sql1 = "SELECT * FROM 字典 ";
rs = s.executeQuery(sql1);
while (rs.next()) {
System.out.print(rs.getString(1));
System.out.print(rs.getString(2));
System.out.println(" ");
}
rs.close();
pstmt.close();
con.close();
} catch (SQLException ce) {
System.out.println(ce);}
return zz;
}
}
//修改類
class update {
private Connection con;
private String url;
private PreparedStatement pstmt;
private String sql,sql1,zz;
private ResultSet rs;
update() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ce) {
System.out.println(ce);
}
url = "jdbc:odbc:test";
}
public String jupdate(String str1,String str2) {
try {
con = DriverManager.getConnection(url);
sql = "UPDATE 字典 SET 詞語解釋=? WHERE 單詞=?";
pstmt= con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
pstmt.setString(1,str1);
pstmt.setString(2,str2);
pstmt.executeUpdate();
Statement s = con.createStatement();
sql1 = "SELECT * FROM 字典 ";
rs = s.executeQuery(sql1);
while (rs.next()) {
System.out.print(rs.getString(1));
System.out.print(rs.getString(2));
System.out.println(" ");
}
rs.close();
pstmt.close();
con.close();
} catch (SQLException ce) {
System.out.println(ce);}
return zz;
}
}
//刪除類
class delete {
private Connection con;
private String url;
private PreparedStatement pstmt;
private String sql,sql1,zz;
private ResultSet rs;
delete() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ce) {
System.out.println(ce);
}
url = "jdbc:odbc:test";
}
public String jdelete(String str1) {
try {
con = DriverManager.getConnection(url);
sql = "delete 字典 WHERE 單詞=?";
pstmt= con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
pstmt.setString(1,str1);
pstmt.executeUpdate();
Statement s = con.createStatement();
sql1 = "SELECT * FROM 字典 ";
rs = s.executeQuery(sql1);
while (rs.next()) {
System.out.print(rs.getString(1));
System.out.print(rs.getString(2));
System.out.println(" ");
}
rs.close();
pstmt.close();
con.close();
} catch (SQLException ce) {
System.out.println(ce);}
return zz;
}
}
還有個(gè)數(shù)據(jù)庫,如果你能留個(gè)郵箱,我把整份程序傳給你~希望能幫到你
說先說:你的代碼有錯(cuò)誤,在最下面,我已經(jīng)該過了,不是大問題。
如果你想學(xué)好java的話,可以根據(jù)這個(gè)代碼加上我的注解去理解,但不要學(xué)這個(gè)代碼的變成方式或者說變成習(xí)慣,這個(gè)代碼基本上無誤,但犯了一些常識(shí)性問題,如果養(yǎng)成了這些不好的習(xí)慣對(duì)以后的編程會(huì)有壞的影響。
我是英文學(xué)的java,所以有些注解可能不通順,但我盡力而為了。 有的注解有點(diǎn)長(zhǎng),所以你復(fù)制到編譯器后稍微編輯一下就可以運(yùn)行。代碼是可以運(yùn)行,沒有問題的。
------------------------------------
import javax.swing.*; //用來創(chuàng)建圖形界面,如窗口,表格,按鈕等。
import java.awt.*; //作用同上,但已經(jīng)很少用,能用swing的地方就不要用awt
import java.awt.event.*;//事件管理和控制
import java.sql.*; //數(shù)據(jù)庫語句和操作
import java.lang.System;//這個(gè)不知道
/*下面的這6個(gè)沒有用,純屬寫出來嚇人*/
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//這個(gè)類implements actionlistener,意思就是它自己就可以執(zhí)行actionListener的任務(wù)
{
JTextField txf=new JTextField(20); //建一個(gè)文字編輯框,長(zhǎng)度20(只可以輸入一行文字)
JTextArea jt=new JTextArea(10,30);//建一個(gè)文字編輯區(qū)域,長(zhǎng)10寬30(可以回車然后輸入多行文字)
JButton btn1=new JButton("查詢");//建一個(gè) 查詢 按鈕
Mywindow()//構(gòu)造函數(shù),每個(gè)類必有的,可以為空
{
JFrame frm=new JFrame("Search");//建一個(gè)窗口(讓其他的東西有地方可放,和容器一樣。是3個(gè)最高級(jí)別的容器之一,其他兩個(gè)是applet和window)
frm.setBounds(400,300,450,350);//設(shè)置大小和位置,前兩個(gè)是坐標(biāo),后兩個(gè)是大小
Container con=getContentPane();//建一個(gè)awt容器對(duì)象,用來添加其他元素,最好用這個(gè)添加元素。像:frm.add(all); 可以寫成 con.add(all);
JPanel pnl4=new JPanel();//建一個(gè)面板用來添加其他元素(第二級(jí)別容器,最后需要被添加在frame上)
pnl4.setBorder(BorderFactory.createTitledBorder("Search"));//設(shè)置邊框樣式
pnl4.add(txf);//把文字編輯框添加到面板上
pnl4.add(btn1);//把按鈕添加到面板上
btn1.addActionListener(this);//添加事件行為監(jiān)聽器(this),this意思是當(dāng)前對(duì)象,呼應(yīng) implements ActionListener
JPanel pnl5=new JPanel();//同上
pnl5.setBorder(BorderFactory.createTitledBorder("Result"));//同上
jt.setWrapStyleWord(true);//這個(gè)忘了
jt.setLineWrap(true);//在區(qū)域規(guī)定的寬度下,如果文字的輸入到一行最后則會(huì)自動(dòng)令其一行繼續(xù),如果是(false),文字輸入就會(huì)在這一行繼續(xù)知道回車
pnl5.add(new JScrollPane(jt));//個(gè)這個(gè)面板添加右側(cè)滾動(dòng)條,當(dāng)文字輸入超過 長(zhǎng)* 寬后 滾動(dòng)條出現(xiàn)
JPanel all=new JPanel();//同上
all.setLayout(new BorderLayout());//設(shè)置布局,borderlayout()分東西南北(上下左右)中五個(gè)部分 無論窗口多大,中間占得面積最大
all.add(pnl4,BorderLayout.NORTH);//添加一個(gè)面板在上面
all.add(pnl5,BorderLayout.CENTER);//添加一個(gè)在中間
frm.add(all);//把最大的這個(gè)面板添加到窗口上 也可以用con.add(all);
frm.setVisible(true);//設(shè)置窗口顯示屬性 如果false就是不顯示
frm.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});//加一個(gè)窗口監(jiān)聽 如果點(diǎn)小紅叉關(guān)閉窗口則系統(tǒng)推出
}
public void actionPerformed(ActionEvent e)//作為ActionListener類的構(gòu)造函數(shù),如果你的class implements ActionListenser, 那就必須得有這個(gè),也可以單獨(dú)寫一個(gè)class,不過有點(diǎn)麻煩
{
if(e.getSource()==btn1)//當(dāng)按鈕被點(diǎn)擊的時(shí)候
{
String str="";//建一個(gè)字符串
String tmp=this.txf.getText();//同上,這個(gè)字符串的值是當(dāng)前對(duì)象(窗口)中,文本框輸入的值
for(int k=0;ktmp.length();k++)//建一個(gè) 永久循環(huán)
str+=tmp.charAt(k)+"%";//把 % 插入每一個(gè)字符后面, 作用后面說
String sql=null;//同上
Statement stmt=null;//定義一個(gè)stmt,用來建數(shù)據(jù)庫連接的
sql="select * from chinese where charsound like'"+str+"'";//創(chuàng)建一個(gè)sql數(shù)據(jù)庫語句,但它本身還是一個(gè)字符串
System.out.println(sql);//系統(tǒng)顯示創(chuàng)建的語句,通常找錯(cuò)時(shí)候用的
try{//try 和 catch 的作用一句兩句說不清楚 不知道你就自己查查
Class.forName("com.mysql.jdbc.Driver");//或者:Class.forName("org.gjt.mm.mysql.Driver");關(guān)聯(lián)mysql數(shù)據(jù)庫驅(qū)動(dòng)
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/japan?user=rootpassword=sa");//建立連接,數(shù)據(jù)庫名japan(為什么不是chinese?)用戶名root密碼sa
stmt=conn.createStatement();//建立statement對(duì)象,用來發(fā)送sql語句到數(shù)據(jù)庫
ResultSet rs=stmt.executeQuery(sql);//運(yùn)行語句并建立一個(gè)查詢結(jié)果的集合
System.out.println("\n------------------------search :"+str+"-------------------------------");//同上
jt.setText("");//清空文本編輯區(qū)域
while(rs.next())//while循環(huán),當(dāng)還有結(jié)果的時(shí)候,把所有查詢結(jié)果添加加到文本編輯區(qū)域中
{
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();//關(guān)閉關(guān)連,很重要。
}
catch(Exception eq){System.out.println("error");}
//--------------------------------------------------------------end btn1-------
}
}
public static void main(String args[])
{
Mywindow win=new Mywindow();//建立一個(gè) mywindow 對(duì)象
win.pack();//將所有元素整合
win.show();
}
}