?? dic.java
字號:
import java.awt.*;
import java.net.*;
import java.sql.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import sun.audio.*;
import javax.swing.JOptionPane;
class DataWindow extends JFrame implements ActionListener
{
JFrame topFrame;
JDesktopPane desktop;
FileDialog filedialog_save; //聲明文件對話框
JTextField englishtext;
JTextArea chinesetext;
JButton b1,b2,b3,b4,b5;
JLabel label;
JMenuBar mbar;
JMenu mfile,medit,mhelp;
JMenuItem edic,cdic,back_data,quit,addedit,modedit,deledit,hhelp,about;
DataWindow()
{
super("英漢小詞典");
this.setBounds(250,250,600,400);
this.setVisible(true);
getContentPane().add(new JScrollPane(chinesetext));
mbar = new JMenuBar();
setJMenuBar(mbar);
mbar.setOpaque(true);
mfile = new JMenu("文件");
medit = new JMenu("編輯");
mhelp = new JMenu("幫助");
mbar.add(mfile);mbar.add(medit);mbar.add(mhelp);
edic = new JMenuItem("英漢詞典");
cdic = new JMenuItem("漢英詞典");
back_data = new JMenuItem("備份詞庫");
quit = new JMenuItem(" 退出");//文件菜單
addedit = new JMenuItem("添加詞匯");
modedit = new JMenuItem("修改詞匯");
deledit = new JMenuItem("刪除詞匯");//編輯菜單
hhelp = new JMenuItem("幫助");
about = new JMenuItem("關于...");//幫助菜單
mfile.add(edic);
mfile.add(cdic);
mfile.add(back_data);
mfile.addSeparator();
mfile.add(quit); //mfile
medit.add(addedit);
medit.add(modedit);
medit.add(deledit); //medit
mhelp.add(hhelp);
mhelp.add(about); //mhelp
edic.addActionListener(this);
cdic.addActionListener(this);
quit.addActionListener(this);
addedit.addActionListener(this);
modedit.addActionListener(this);
deledit.addActionListener(this);
hhelp.addActionListener(this);
about.addActionListener(this);
englishtext = new JTextField(16);
englishtext.setFont(new Font("",15,15));
chinesetext = new JTextArea(8,15);
chinesetext.setEditable(false);
chinesetext.setFont(new Font("",25,25));
b1 = new JButton("查詢");
b2 = new JButton("添加");
b3 = new JButton("修改");
b4 = new JButton("刪除");
b5 = new JButton("發音");
JPanel p1 = new JPanel(),p2 = new JPanel();//添加面板
label = new JLabel("輸入要查詢的英語單詞:");
label.setFont(new Font("隸書",20,20));
p1.add(label);
p1.add(englishtext);p1.add(b1);p1.add(b5);
p2.add(b2);p2.add(b3);p2.add(b4);
this.add(p1,"North");
this.add(p2,"South");
this.add(new JScrollPane(chinesetext),"Center");
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
englishtext.addActionListener(this);
back_data.addActionListener(this);
filedialog_save = new FileDialog(this,"保存文件對話框",FileDialog.SAVE);
filedialog_save.addWindowListener(new WindowAdapter() //對話框增加適配器
{
public void windowClosing(WindowEvent e)
{
filedialog_save.setVisible(false);
}
});
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{ System.exit(0); }
});
}
public void actionPerformed(ActionEvent e) //實現按鈕監聽
{
if(e.getSource()==b1||e.getSource()==englishtext)
{
chinesetext.setText("");
if(englishtext.getText().equals(""))
{
JOptionPane.showMessageDialog(this,"查詢對象不能為空!","警告",
JOptionPane.WARNING_MESSAGE);
}
else{
try{ Listwords(); }
catch(SQLException ee){ }
}
}
else if(e.getSource()==b2||e.getSource()==addedit)
{
AddWin add = new AddWin(); //AddWin是添加窗口的類
}
else if(e.getSource()==b3||e.getSource()==modedit)
{
ModifyWin modi = new ModifyWin(); //ModifyWin是修改窗口的類
}
else if(e.getSource()==b4||e.getSource()==deledit)
{
DelWin del = new DelWin(); //DelWin是刪除窗口的類
}
else if(e.getSource()==b5)//發音
{
if(englishtext.getText()!=null)
{
try
{
InputStream is=getClass().getResource("sound//"+
englishtext.getText().trim()+".wav").openStream();
AudioPlayer.player.start(is);
}
catch(IOException e1){ }
}
}
else if(e.getSource()==edic) //英漢
{
label.setText("輸入要查詢的英語單詞:");
b1.setVisible(true);
b5.setVisible(true);
}
else if(e.getSource()==cdic) //漢英
{
label.setText("輸入要查詢的漢語意思:");
b1.setVisible(true);
b5.setVisible(true);
}
else if(e.getSource()==back_data) //備份
{
File fromfile = new File("english\\english.mdb");
FileInputStream fis = null;
filedialog_save.setVisible(true);
try{
fis = new FileInputStream(fromfile);
int bytesRead; //定義變量來存儲輸入流中讀取出來的文件
byte[] buf = new byte[4*1024]; //4K buffer
File tofile = new File(filedialog_save.getDirectory(),filedialog_save.getFile());
FileOutputStream fos = new FileOutputStream(tofile);
while((bytesRead = fis.read(buf))!=-1)
{
fos.write(buf,0,bytesRead);
}
fos.flush();
fos.close();
fis.close();
}
catch(IOException e2){ }
}
else if(e.getSource()==quit) //退出
{
System.exit(0);
}
else if(e.getSource()==about) //關于
{
final String AboutMsg = "A Electrical Dictionary 1.0 \n \n"
+"An application written to show off the function of dictionary.\n \n"
+"Written By Edith.\n \n"
+"Copyright (c) 2005 by Edith.All rights Reserved.";
JOptionPane.showMessageDialog(topFrame,AboutMsg);
}
else if(e.getSource()==hhelp) //幫助
{
HelpFrame help = new HelpFrame();
help.setVisible(true);
}
}
public void Listwords() throws SQLException //實現查詢功能
{
String cname,ename;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
//建立橋接器
Connection Ex1Con = DriverManager.getConnection("jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=english\\english.mdb","","");
Statement Ex1Stmt = Ex1Con.createStatement();
if(label.getText().equals("輸入要查詢的英語單詞:"))
{
ResultSet rs = Ex1Stmt.executeQuery("SELECT * FROM 表1");
while( rs.next())
{
ename = rs.getString("單詞");
cname = rs.getString("解釋");
if(ename.equals(englishtext.getText()))
{
chinesetext.append(cname+'\n');
}
}
Ex1Con.close(); //關閉數據庫
if(chinesetext.getText().equals(""))
{
JOptionPane.showMessageDialog(this,"查無此單詞!","警告",
JOptionPane.WARNING_MESSAGE);
}
}
else if(label.getText().equals("輸入要查詢的漢語意思:"))
{
ResultSet rs=Ex1Stmt.executeQuery("SELECT * FROM 表1 WHERE 解釋 LIKE '%"+englishtext.getText()+"%'");
while(rs.next())
{
ename = rs.getString("單詞");
cname = rs.getString("解釋");
chinesetext.append(ename+'\n');
}
Ex1Con.close(); //關閉數據庫
if(chinesetext.getText().equals(""))
{
JOptionPane.showMessageDialog(this,"查無此單詞!","警告",
JOptionPane.WARNING_MESSAGE);
}
}
} // end of Liststudent()
}
public class Dic
{
public static void main(String args[])
{
JFrame.setDefaultLookAndFeelDecorated(true);
DataWindow window = new DataWindow();
window.validate();
// AddWin add = new AddWin();
}
public void add()
{
}
}
/////////////////////////////////////////////////////
/////////////////////////////////////////////////////
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -