【從零開始學 Java 程式設計】繁體簡體中文互轉小工具

【從零開始學 Java 程式設計】 線上教學課程目錄,使用 Java 程式語言,開發應用程式。

繁體簡體中文互轉小工具

在文字框內,輸入的文字可以快速轉換為繁體或是簡體中文,並提供快速複製文字框內功能

執行畫面

drawing

使用第三方 Lib : Opencc4j

Opencc4j 支持中文繁简体转换,考虑到词组级别
dependencies {
    compile 'com.github.houbb:opencc4j:1.1.0'
}

繁體轉簡體中文

String original = "從零開始學 Java 程式設計";
String result = ZhConverterUtil.convertToSimple(original);

簡體轉繁體中文

String original = "从零开始学 Java 程式设计";
String result = ZhConverterUtil.convertToTraditional(original);

完整程式碼

import com.github.houbb.opencc4j.util.ZhConverterUtil;

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

public class DemoChineseConvert {
    private JTextArea jTextArea;

    public void addComponentsToPane(Container pane) {

        //預設是 BorderLayout,可以不用再設定
        //pane.setLayout(new BorderLayout());

        JPanel panelNorth = new JPanel();
        panelNorth.setLayout(new GridLayout());
        pane.add(panelNorth, BorderLayout.NORTH);

        //簡體轉繁體
        JButton btnCToT = new JButton("簡->繁");
        btnCToT.setPreferredSize(new Dimension(100, 100));
        btnCToT.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (jTextArea != null) {
                    String res = ZhConverterUtil.convertToTraditional(jTextArea.getText());
                    jTextArea.setText(res);
                }
            }
        });
        panelNorth.add(btnCToT);

        //繁體轉簡體
        JButton btnTToC = new JButton("繁->簡");
        btnTToC.setPreferredSize(new Dimension(100, 100));
        btnTToC.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (jTextArea != null) {
                    String res = ZhConverterUtil.convertToSimple(jTextArea.getText());
                    jTextArea.setText(res);
                }
            }
        });
        panelNorth.add(btnTToC);

        //複製
        JButton btnCopy = new JButton("複製");
        btnCopy.setPreferredSize(new Dimension(100, 100));
        btnCopy.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (jTextArea != null) {
                    jTextArea.selectAll();
                    jTextArea.copy();
                }
            }
        });
        panelNorth.add(btnCopy);

        //輸入多行文字框
        JScrollPane jScrollPaneCenter = new JScrollPane();
        jTextArea = new JTextArea();
        jTextArea.setPreferredSize(new Dimension(300, 300));
        jTextArea.setLineWrap(true);
        jTextArea.setWrapStyleWord(true);
        jScrollPaneCenter.setViewportView(jTextArea);
        pane.add(jScrollPaneCenter, BorderLayout.CENTER);

    }

    public DemoChineseConvert() {
        JFrame frame = new JFrame("HKT線上教室-繁簡互轉小工具");
        // 獲取螢幕解析度
        Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
//        frame.setSize(dimension.width / 2, dimension.height / 2);

        //設定視窗顯示在螢幕畫面中間位置
        int x = (int) ((dimension.getWidth() - frame.getWidth()) / 2);
        int y = (int) ((dimension.getHeight() - frame.getHeight()) / 2);
        frame.setLocation(x, y);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//設定關閉可以關掉程式
        //在 Pane 畫面中加入元件
        addComponentsToPane(frame.getContentPane());
        frame.pack();
        frame.setVisible(true);
    }

    //最一開始程式進入點
    public static void main(String[] args) {
        //使用 invokeLater 確保 UI 在排程執行緒內
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new DemoChineseConvert();
            }
        });
    }
}


那這次的課程就介紹到這邊囉~
順帶一提,KT 線上教室,臉書粉絲團,會不定期發佈相關資訊,不想錯過最新資訊,不要忘記來按讚,加追蹤喔!也歡迎大家將這套課程分享給更多人喔。
我們下次再見囉!!!掰掰~

留言

這個網誌中的熱門文章

最新入門零基礎【從零開始學 Java 程式設計】線上教學課程目錄

NS - Nintendo Switch 遊戲比價網

【從零開始學 Kotlin 程式設計】Android Kotlin 線上教學課程目錄