【從零開始學 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 線上教室,臉書粉絲團,會不定期發佈相關資訊,不想錯過最新資訊,不要忘記來按讚,加追蹤喔!也歡迎大家將這套課程分享給更多人喔。
我們下次再見囉!!!掰掰~

這個網誌中的熱門文章

16天記下7000單字

2023 最新入門零基礎 Kotlin教學【從零開始學 Kotlin 程式設計】Kotlin 教學課程目錄 (Android Kotlin, IntelliJ IDEA, Android Studio, Android APP 開發教學)

2022 最新入門零基礎 Flutter教學 【Flutter 程式設計入門實戰 30 天】Flutter 教學課程目錄 (IntelliJ IDEA 開發教學)

nano 文字編輯器

【從零開始學 Flutter 程式設計】SharedPreferences 設定檔資料存取