JAVA-GUI實(shí)現(xiàn)字符串與16進(jìn)制HEX互轉(zhuǎn)

最近在使用NB-IoT進(jìn)行STM32開發(fā)時(shí)經(jīng)常遇到需要將字符串轉(zhuǎn)為16進(jìn)制數(shù)據(jù)的情況,在使用大多數(shù)模塊以及UDP等通訊協(xié)議時(shí),也大多需要將字符串轉(zhuǎn)為16進(jìn)制后再傳輸,所以我決定用JAVA GUI制作一個(gè)窗體程序可以方便的實(shí)現(xiàn)字符串和16進(jìn)制數(shù)據(jù)的互相轉(zhuǎn)換。

一、編寫兩個(gè)轉(zhuǎn)換方法

首先是字符串轉(zhuǎn)16進(jìn)制方法,雖然char[]數(shù)組更方便轉(zhuǎn)換,但是由于GUI中JTextField通常都是String類型,還是將方法的參數(shù)設(shè)為String類型:

/**
 * String轉(zhuǎn)16進(jìn)制
 * @param ascii
 * @return
 */
static String Ascii2Hex(String ascii) {
    char[] chars = ascii.toCharArray();
    StringBuffer hex = new StringBuffer();
    for (int i = 0;i < chars.length;i++) {
        hex.append(Integer.toHexString((int)chars[i]));
    }
    return hex.toString().toUpperCase();
}

然后是16進(jìn)制轉(zhuǎn)字符串的方法,同樣其參數(shù)為String類型:

/**
 * 16進(jìn)制轉(zhuǎn)String
 * @param hex
 * @return
 */
static String Hex2Ascii(String hex) {
    String temp = "";
    for (int i = 0; i < hex.length() / 2; i++) {
        temp = temp + (char) Integer.valueOf(hex.substring(i * 2, i * 2 + 2), 16).byteValue();
    }
    return temp;
}

二、窗體類

實(shí)現(xiàn)了兩個(gè)轉(zhuǎn)換的方法后,就可以新建一個(gè)類繼承自JFrame,在窗口類中布局,在窗口類中,我使用簡單的線性布局來實(shí)現(xiàn)。將第一個(gè)JTextField的文字作為轉(zhuǎn)換方法的參數(shù),得到返回值輸出到第二個(gè)JTextField。


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

/**
 * @Author :王皓月
 * @Date :2018/6/16 下午10:40
 * @Description :窗體類
 */

public class ToolGUI extends JFrame {

    JTextField textField1;
    JButton button1;
    JButton button2;
    JTextField textField2;

    public ToolGUI() {
        setVisible(true);
        setTitle("16進(jìn)制與字符串轉(zhuǎn)換");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(400,400,400,130);
        setLayout(new FlowLayout());
        Container container = getContentPane();
        container.setBackground(Color.WHITE);

        textField1 = new JTextField(30);
        container.add(textField1);

        button1 = new JButton("ASCII轉(zhuǎn)HEX");
        button2 = new JButton("HEX轉(zhuǎn)ASCII");

        button1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String INPUT = textField1.getText().toString();
                String OUTPUT = Hex_Ascii.Ascii2Hex(INPUT);
                textField2.setText(OUTPUT);
            }
        });

        button2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String INPUT = textField1.getText().toString();
                String OUTPUT = Hex_Ascii.Hex2Ascii(INPUT);
                textField2.setText(OUTPUT);
            }
        });

        container.add(button1);
        container.add(button2);

        textField2 = new JTextField(30);
        container.add(textField2);

        container.validate();
        setResizable(false);
    }

}

三、主函數(shù)

最后在主類中新建一個(gè)窗體類的對象即可。

public class main {
    public static void main(String[] args) {
        new ToolGUI();
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 最先接觸編程的知識是在大學(xué)里面,大學(xué)里面學(xué)了一些基礎(chǔ)的知識,c語言,java語言,單片機(jī)的匯編語言等;大學(xué)畢...
    oceanfive閱讀 3,407評論 0 7
  • 一、Java 簡介 Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計(jì)...
    子非魚_t_閱讀 4,654評論 1 44
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,853評論 18 399
  • 第01章 JAVA簡介第02章 基礎(chǔ)語法第02章 遞歸補(bǔ)充第03章 面向?qū)ο蟮?4章 異常處理第05章 數(shù)組第06...
    順毛閱讀 566評論 0 1
  • ——讀張籍《沒蕃故人》 吐蕃在哪里? 故人在哪里? 廢帳殘旗在哪里? 歸馬...
    大觀學(xué)園閱讀 357評論 0 1

友情鏈接更多精彩內(nèi)容