2024/11/09

今天绘制软件设计实验一的GUI页面

package com.mes;

import com.mes.util.TransConfig;

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

public class InitForm {

    private JFrame frame;
    private JTextArea textArea;
    private JComboBox<String> comboBox;
    private JButton button;
    private JLabel resultLabel;

    public InitForm() {
        // 创建窗体
        frame = new JFrame("百度翻译");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 300);

        // 设置窗体布局为边界布局,方便对各组件进行布局安排
        frame.setLayout(new BorderLayout());
        JPanel inputPanel = new JPanel(new FlowLayout());

        // 创建文本域
        textArea = new JTextArea(5, 20);
        textArea.setFont(new Font("宋体", Font.PLAIN, 16));

        JScrollPane scrollPane = new JScrollPane(textArea);
        inputPanel.add(scrollPane);

        // 创建下拉框
        comboBox = new JComboBox<>(new String[]{"英转中", "中转英", "自动识别转中", "自动识别转英"});
        comboBox.setFont(new Font("宋体", Font.PLAIN, 16));
        inputPanel.add(comboBox);
        // 设置"中转英"为默认选中项
        comboBox.setSelectedItem("中转英");
        frame.add(inputPanel, BorderLayout.NORTH);

        // 创建面板用于放置按钮
        JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));

        // 创建按钮
        button = new JButton("翻译");
        button.setFont(new Font("宋体", Font.BOLD, 18));
        button.setPreferredSize(new Dimension(100, 40));
        buttonPanel.add(button);
        // 将按钮面板添加到窗体的中部区域
        frame.add(buttonPanel, BorderLayout.CENTER);

        // 创建用于显示结果的文本标签
        resultLabel = new JLabel();
        resultLabel.setFont(new Font("宋体", Font.PLAIN, 16));
        resultLabel.setHorizontalAlignment(SwingConstants.CENTER);
        resultLabel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); // 设置标签的边距

        JPanel resultPanel = new JPanel(new BorderLayout());
        resultPanel.add(resultLabel, BorderLayout.CENTER);


        resultPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 50, 10)); // 设置底部间距为 50
        resultPanel.add(resultLabel, BorderLayout.CENTER);
        frame.add(resultPanel, BorderLayout.SOUTH);

        // 为下拉框添加事件监听器
        comboBox.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (comboBox.getSelectedItem().equals("英转中")) {
                    TransConfig.getInstance().setFrom("en");
                    TransConfig.getInstance().setTo("zh");
                } else if (comboBox.getSelectedItem().equals("中转英")) {
                    TransConfig.getInstance().setFrom("zh");
                    TransConfig.getInstance().setTo("en");
                } else if (comboBox.getSelectedItem().equals("自动识别转中")) {
                    TransConfig.getInstance().setFrom("auto");
                    TransConfig.getInstance().setTo("zh");
                } else if (comboBox.getSelectedItem().equals("自动识别转英")) {
                    TransConfig.getInstance().setFrom("auto");
                    TransConfig.getInstance().setTo("en");
                }
            }
        });

        // 为按钮添加事件监听器
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String query = textArea.getText();
                try {
                    resultLabel.setText("翻译结果: " + TransConfig.getTransBySDK(query));
                } catch (IOException ex) {
                    throw new RuntimeException(ex);
                }
            }
        });

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

主函数调用:

package com.mes;

import com.mes.util.TransApi;
import com.mes.util.TransConfig;

import java.io.IOException;

/**
 * Hello world!
 *
 */
public class App
{

    public static void main(String[] args) throws IOException {
        new InitForm();
//        TransConfig transConfig = TransConfig.getInstance();
//        transConfig.setFrom("en");
//        transConfig.setTo("zh");
//        System.out.println(TransConfig.getTransBySDK("hello world"));
//        System.out.println(transConfig.getTrans("hello world"));
//
//        transConfig.setFrom("zh");
//        transConfig.setTo("en");
//        System.out.println(TransConfig.getTransBySDK("向天再借五百年"));
//        System.out.println(transConfig.getTrans("向天再借五百年"));
    }
}

 

posted @ 2024-11-09 20:01  伐木工熊大  阅读(7)  评论(0)    收藏  举报