实验一:百度机器翻译SDK实验

package org.example;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class BaiduTranslateGUI {
private JFrame frame;
private JTextArea inputTextArea;
private JTextArea translatedTextArea;
private JButton translateToEnglishButton;
private JButton translateToChineseButton;

public BaiduTranslateGUI() {
// 创建和设置窗口
frame = new JFrame("百度翻译");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 400);
frame.setLayout(new BorderLayout());

// 欢迎标签
JLabel welcomeLabel = new JLabel("欢迎来到百度翻译", SwingConstants.CENTER);
welcomeLabel.setFont(new Font("Serif", Font.BOLD, 18)); // 设置字体样式和大小
welcomeLabel.setBorder(BorderFactory.createLineBorder(Color.BLACK)); // 设置边框
frame.add(welcomeLabel, BorderLayout.NORTH); // 将欢迎标签添加到窗口北部

// 输入文本区域
inputTextArea = new JTextArea(10, 40); // 设置初始行数和列数
inputTextArea.setLineWrap(true);
JScrollPane inputScrollPane = new JScrollPane(inputTextArea);

// 翻译结果显示区域
translatedTextArea = new JTextArea();
translatedTextArea.setLineWrap(true);
translatedTextArea.setWrapStyleWord(true);
translatedTextArea.setEditable(false);
JScrollPane translatedScrollPane = new JScrollPane(translatedTextArea);

// 使用JSplitPane让输入框和输出框适应页面大小
JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, inputScrollPane, translatedScrollPane);
splitPane.setDividerLocation(250); // 设置初始分割位置
splitPane.setDividerSize(5); // 设置分割条的厚度
splitPane.setOneTouchExpandable(true); // 设置拖动分割条时可以展开或收缩

frame.add(splitPane, BorderLayout.CENTER); // 将splitPane添加到窗口中心

// 按钮面板
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new FlowLayout());

// 添加“翻译”字样的标签
JLabel translateLabel = new JLabel("网络翻译:");
buttonPanel.add(translateLabel);

// 翻译按钮
translateToEnglishButton = new JButton("中译英");
translateToEnglishButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
translate(inputTextArea.getText(), "zh", "en");
}
});
buttonPanel.add(translateToEnglishButton);

// 翻译按钮
translateToChineseButton = new JButton("英译中");
translateToChineseButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
translate(inputTextArea.getText(), "en", "zh");
}
});
buttonPanel.add(translateToChineseButton);

frame.add(buttonPanel, BorderLayout.SOUTH); // 将按钮面板添加到窗口南部
}

private void translate(String text, String from, String to) {
String translatedText = BaiduTranslate.translate(text, from, to);
translatedTextArea.setText(translatedText);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new BaiduTranslateGUI().frame.setVisible(true);
}
});
}
}

 

posted @ 2024-11-22 21:30  不会JAVA的小袁  阅读(11)  评论(0编辑  收藏  举报