今天在网上乱逛,一不小心发现这个Google翻译,用Java调用的实例,把它拷来看了一下,挺不错的! 原文是英语和法语的互相翻译,我改成中文和英语的,但是好像中文翻译英文时有点问题,翻译不了!其他的都可以用的。 下面是一个截图:
源代码:
package test;
/* * TranslatorFrame.java * * Created on 03 February 2008, 19:47 */
import com.google.api.translate.Language; import com.google.api.translate.Translate; import java.awt.event.KeyEvent; import java.util.logging.Level; import java.util.logging.Logger;
/** * * @author rich */ public class TranslatorFrame extends javax.swing.JFrame { /** Creates new form TranslatorFrame */ public TranslatorFrame() { initComponents(); setLocationRelativeTo(null); } private void translate() { try { String languageFrom = null; String languageTo = null; if (chineseToEnglishMenuItem.isSelected()) { languageFrom = Language.CHINESE_SIMPLIFIED; languageTo = Language.ENGLISH; } else if (englishToChineseMenuItem.isSelected()) { languageFrom = Language.ENGLISH; languageTo = Language.CHINESE_SIMPLIFIED; } toTextArea.setText(Translate.translate(fromTextArea.getText().trim(), languageFrom, languageTo)); } catch (Exception ex) { Logger.getLogger(TranslatorFrame.class.getName()).log(Level.SEVERE, null, ex); } } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() {
buttonGroup1 = new javax.swing.ButtonGroup(); jPanel2 = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); fromTextArea = new javax.swing.JTextArea(); jPanel3 = new javax.swing.JPanel(); jScrollPane2 = new javax.swing.JScrollPane(); toTextArea = new javax.swing.JTextArea(); jMenuBar1 = new javax.swing.JMenuBar(); jMenu1 = new javax.swing.JMenu(); jMenuItem1 = new javax.swing.JMenuItem(); jMenu3 = new javax.swing.JMenu(); englishToChineseMenuItem = new javax.swing.JRadioButtonMenuItem(); chineseToEnglishMenuItem = new javax.swing.JRadioButtonMenuItem();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("Google翻译"); getContentPane().setLayout(new javax.swing.BoxLayout(getContentPane(), javax.swing.BoxLayout.PAGE_AXIS));
fromTextArea.setColumns(20); fromTextArea.setLineWrap(true); fromTextArea.setRows(5); fromTextArea.setWrapStyleWord(true); fromTextArea.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent evt) { fromTextAreaKeyPressed(evt); } }); jScrollPane1.setViewportView(fromTextArea);
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 309, Short.MAX_VALUE) .addContainerGap()) ); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 93, Short.MAX_VALUE) .addContainerGap()) );
getContentPane().add(jPanel2);
toTextArea.setColumns(20); toTextArea.setEditable(false); toTextArea.setLineWrap(true); toTextArea.setRows(5); toTextArea.setWrapStyleWord(true); jScrollPane2.setViewportView(toTextArea);
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); jPanel3.setLayout(jPanel3Layout); jPanel3Layout.setHorizontalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 309, Short.MAX_VALUE) .addContainerGap()) ); jPanel3Layout.setVerticalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 93, Short.MAX_VALUE) .addContainerGap()) );
getContentPane().add(jPanel3);
jMenu1.setText("文件");
jMenuItem1.setText("退出"); jMenuItem1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItem1ActionPerformed(evt); } }); jMenu1.add(jMenuItem1);
jMenuBar1.add(jMenu1);
jMenu3.setText("语言");
buttonGroup1.add(englishToChineseMenuItem); englishToChineseMenuItem.setSelected(true); englishToChineseMenuItem.setText("英语 > 简体中文"); jMenu3.add(englishToChineseMenuItem);
buttonGroup1.add(chineseToEnglishMenuItem); chineseToEnglishMenuItem.setText("简体中文 > 英语"); jMenu3.add(chineseToEnglishMenuItem);
jMenuBar1.add(jMenu3);
setJMenuBar(jMenuBar1);
pack(); }// </editor-fold>
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) { System.exit(0); }
private void fromTextAreaKeyPressed(java.awt.event.KeyEvent evt) { if (evt.getKeyCode() == KeyEvent.VK_ENTER) { translate(); evt.consume(); } } /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new TranslatorFrame().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JRadioButtonMenuItem englishToChineseMenuItem; private javax.swing.JRadioButtonMenuItem chineseToEnglishMenuItem; private javax.swing.JTextArea fromTextArea; private javax.swing.JMenu jMenu1; private javax.swing.JMenu jMenu3; private javax.swing.JMenuBar jMenuBar1; private javax.swing.JMenuItem jMenuItem1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JTextArea toTextArea; // End of variables declaration }
上面的代码用到了Google提供的一个jar,下载地址: google-api-translate-java-0.4.jar
|