首页 > 其他分享 >每日博客

每日博客

时间:2023-11-29 23:46:33浏览次数:32  
标签:String 每日 博客 34 import new frame panel

今天搞了百度翻译

package org.example;
import okhttp3.*;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import okhttp3.*;
import org.apache.hbase.thirdparty.com.google.gson.Gson;
import org.apache.hbase.thirdparty.com.google.gson.JsonArray;
import org.apache.hbase.thirdparty.com.google.gson.JsonObject;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;

public class TranslationApp {
public static final String API_KEY = "cwk7TA68XaoxlS8ZhR4xijsZ";
public static final String SECRET_KEY = "mOXnsemPGalF6VVGIXmeSPu43o8P27Hu";

static final OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().build();
private JFrame frame;
private JTextField inputTextField;
private JComboBox<String> fromLanguageComboBox;
private JComboBox<String> toLanguageComboBox;
private JLabel outputLabel;

public TranslationApp() {
// 创建主窗口
frame = new JFrame("Translation App");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 200);

// 创建面板
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout(10, 10)); // 设置边界布局,并添加间距

// 创建文本框和标签
inputTextField = new JTextField();
JButton translateButton = new JButton("Translate");
outputLabel = new JLabel("Translation will appear here.");
outputLabel.setForeground(new Color(34, 139, 34)); // 设置标签文本颜色为绿色

// 创建语言选择下拉框
String[] languages = {"en", "zh"};
fromLanguageComboBox = new JComboBox<>(languages);
toLanguageComboBox = new JComboBox<>(languages);

// 设置按钮的点击事件
translateButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String inputText = inputTextField.getText();
String fromLanguage = (String) fromLanguageComboBox.getSelectedItem();
String toLanguage = (String) toLanguageComboBox.getSelectedItem();

String translatedText = translateText(inputText, fromLanguage, toLanguage);




MediaType mediaType = MediaType.parse("application/json");
// 假设你有三个变量分别为 fromValue、toValue、qValue
// 创建包含变量的 JSON 字符串
String jsonBody = String.format("{\"from\":\"%s\",\"to\":\"%s\",\"q\":\"%s\"}", fromLanguage, toLanguage, inputText);
// 创建 RequestBody 对象
RequestBody body = RequestBody.create(mediaType, jsonBody);
Request request = null;
try {
request = new Request.Builder()
.url("https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1?access_token=" + getAccessToken())
.method("POST", body)
.addHeader("Content-Type", "application/json")
.addHeader("Accept", "application/json")
.build();
} catch (IOException ex) {
throw new RuntimeException(ex);
}
Response response = null;
try {
response = HTTP_CLIENT.newCall(request).execute();
} catch (IOException ex) {
throw new RuntimeException(ex);
}
String json = null;
try {
json = response.body().string();
} catch (IOException ex) {
throw new RuntimeException(ex);
}
Gson gson = new Gson();

// 将 JSON 数据解析为 JsonObject
JsonObject jsonObject = gson.fromJson(json, JsonObject.class);

// 获取 "result" 对象
JsonObject resultObject = jsonObject.getAsJsonObject("result");

// 获取 "trans_result" 数组
JsonArray transResultArray = resultObject.getAsJsonArray("trans_result");

// 获取第一个元素
JsonObject transResultObject = transResultArray.get(0).getAsJsonObject();

// 获取 "dst" 字段的值
String dstValue = transResultObject.get("dst").getAsString();

// 输出结果
outputLabel.setText(dstValue);
}
});

// 将组件添加到面板
panel.add(inputTextField, BorderLayout.NORTH);
panel.add(fromLanguageComboBox, BorderLayout.WEST);
panel.add(toLanguageComboBox, BorderLayout.EAST);
panel.add(translateButton, BorderLayout.CENTER);
panel.add(outputLabel, BorderLayout.SOUTH);

// 设置组件的外观
Font font = new Font("SimSun", Font.PLAIN, 14); // 设置字体为Verdana
inputTextField.setFont(font);
translateButton.setFont(font);
outputLabel.setFont(font);
fromLanguageComboBox.setFont(font);
toLanguageComboBox.setFont(font);


// 设置面板的背景色
panel.setBackground(new Color(240, 240, 240)); // 设置背景色为淡灰色

// 设置按钮和下拉框的边框
translateButton.setBorder(BorderFactory.createLineBorder(new Color(34, 139, 34), 2)); // 设置按钮边框为绿色
fromLanguageComboBox.setBorder(BorderFactory.createLineBorder(new Color(34, 139, 34), 1)); // 设置下拉框边框为绿色
toLanguageComboBox.setBorder(BorderFactory.createLineBorder(new Color(34, 139, 34), 1)); // 设置下拉框边框为绿色

// 将面板添加到主窗口
frame.getContentPane().add(panel);

// 设置窗口居中
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation((screenSize.width - frame.getWidth()) / 2, (screenSize.height - frame.getHeight()) / 2);

// 设置窗口可见
frame.setVisible(true);
}

private String translateText(String inputText, String fromLanguage, String toLanguage) {
// 在这里可以添加实际的翻译逻辑
return inputText; // 这里先返回输入文本,表示没有进行实际翻译
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new TranslationApp();
}
});
}
static String getAccessToken() throws IOException {
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=" + API_KEY
+ "&client_secret=" + SECRET_KEY);
Request request = new Request.Builder()
.url("https://aip.baidubce.com/oauth/2.0/token")
.method("POST", body)
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.build();
Response response = HTTP_CLIENT.newCall(request).execute();
try {
return new JSONObject(response.body().string()).getString("access_token");
} catch (JSONException e) {
throw new RuntimeException(e);
}
}
}

标签:String,每日,博客,34,import,new,frame,panel
From: https://www.cnblogs.com/zzfdbk/p/17866209.html

相关文章

  • 每日总结
    今日收获今天将之前的遗留问题全部解决啦~~学习了英语;也学习了JFinal框架;明天预计学习英语;学习新知识;完成软件设计作业;希望明天顺利通过王老师的测试~~~......
  • 2023.11.29——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.百度图像增强SDK明日计划:学习......
  • 11.29博客
    今天完成了软件构造任务一和二,不过jfinaldemo测试的时候,80端口被占用。index主页面也是乱码的,明天再说。 ......
  • 11.29每日总结
    今天正常地完成了各个实验,但是在实验中遇到了一个问题,就是用idea的时候控制台用output的时候一直是乱码,网上找了很多都是修改idea的配置,实际是jdk的问题,一定不用要JDK18.其他的都可以。......
  • 每日总结(47)
    代码时间(包括上课)5h代码量(行):100行博客数量(篇):1篇相关事项:1、今天是周三,今天只有一节课,就是软件构造,这节课是实验课,这周是第十三周了,马上也迎来了这学期的末尾,大作业的题目也发布了。2、今天下午洗了洗澡,刷了刷抖音,然后把衣服洗了,又发了篇博客。3、今天晚上打算把大数据的最后......
  • 每日总结(48)
    代码时间(包括上课)5h代码量(行):100行博客数量(篇):1篇相关事项:1、今天是周三,今天只有一节课,就是软件构造,这节课是实验课,这周是第十三周了,马上也迎来了这学期的末尾,大作业的题目也发布了。2、今天下午洗了洗澡,刷了刷抖音,然后把衣服洗了,又发了篇博客。3、今天晚上打算把大数据的最后......
  • Linux第十二周技术博客
    今天我们学习了文件查找、打包压缩和解压使用echo命令可以查看变量PATH的值,其值被冒号分割成7个字段,每一个字段代表一个目录,which命令时全文搜索,它可以在环境变量PATH设置的目录中查找符合条件的命令文件。local命令可以让用户快速查找所需要的文件或目录。它不搜索全部数据而是......
  • 每日总结(41)
    代码时间(包括上课)5h代码量(行):100行博客数量(篇):1篇相关事项:1、今天是周三,今天只有一节课,就是软件构造,这节课是实验课,这周是第十三周了,马上也迎来了这学期的末尾,大作业的题目也发布了。2、今天下午洗了洗澡,刷了刷抖音,然后把衣服洗了,又发了篇博客。3、今天晚上打算把大数据的最后......
  • 11.29每日总结
    新建maven项目时,Run中报警告:Noarchetypefoundinremotecatalog.Defaultingtointernalcatalog.【在远程目录中没有找到原型。默认为内部编录。】,如图: 解决办法1:可以不用管【因为使用了maven模版构建项目,要从网上获取模版,然而没有找到这个模版或者网络慢,导致获取失败】,......
  • 11.29每日总结
    今天进行软件构造的实验一实验一:百度机器翻译SDK实验(2023.11.29日完成)任务一:下载配置百度翻译Java相关库及环境(占10%)。任务二:了解百度翻译相关功能并进行总结,包括文本翻译-通用版和文本翻译-词典版(占20%)。任务三:完成百度翻译相关功能代码并测试调用,要求可以实现中文翻译成英文......