您的位置:首页 > 编程语言 > Java开发

java做的一整形数据进制转换器

2014-03-18 21:52 302 查看
package lph.school;

import java.awt.FlowLayout;

import java.awt.Rectangle;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class HexConverter extends JFrame implements ActionListener {

private static final long serialVersionUID = 1L;

JLabel jl1, jl2, jl3;

JTextField jtf1, jtf2;

JComboBox jcb;

JButton jb1, jb2, jb3;

String s[] = { "二进制", "八进制", "十进制", "十六进制" };

public void init() {

jl1 = new JLabel("请输入数字",JLabel.LEFT);

jl2 = new JLabel("进制");

jl3 = new JLabel("转换后的值",JLabel.LEFT);

jtf1 = new JTextField(15);

jtf2 = new JTextField(30);

jtf1.setAlignmentX(LEFT_ALIGNMENT);

jtf1.setAlignmentY(LEFT_ALIGNMENT);

jtf2.setAlignmentX(LEFT_ALIGNMENT);

jtf2.setAlignmentY(LEFT_ALIGNMENT);

jb1 = new JButton("转换");

jb2 = new JButton("清除");

jb3 = new JButton("退出");

jcb = new JComboBox(s);

JFrame jf = new JFrame("进制转换器");

JPanel jp = new JPanel();

jp.setLayout(new FlowLayout());

jb1.addActionListener(this);

jb2.addActionListener(this);

jb3.addActionListener(this);

jcb.addActionListener(this);

jp.add(jl1);

jp.add(jtf1);

jp.add(jl2);

jp.add(jcb);

jp.add(jb1);

jp.add(jb2);

jp.add(jb3);

jp.add(jl3);

jp.add(jtf2);

jf.add(jp);

jf.setBounds(new Rectangle(600, 150));

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jf.setVisible(true);

jf.setResizable(false);

}

public String test10to16(long number) {

String str2 = "";

long str1[] = new long[100];

int i = 0;

while (number != 0) {

str1[i] = number % 16;

number = (number - str1[i]) / 16;

i++;

}

for (int j = 0; j < i; j++) {

if (str1[j] < 10)

str2 = str1[j] + str2;

if (str1[j] == 10)

str2 = "A" + str2;

if (str1[j] == 11)

str2 = "B" + str2;

if (str1[j] == 12)

str2 = "C" + str2;

if (str1[j] == 13)

str2 = "D" + str2;

if (str1[j] == 14)

str2 = "E" + str2;

if (str1[j] == 15)

str2 = "F" + str2;

}

return str2;

}

public String test10to2(long number) {

String str3 = "";

long str1[] = new long[100];

int i = 0;

while (number != 0) {

str1[i] = number % 2;

number = (number - str1[i]) / 2;

i++;

}

for (int j = 0; j < i; j++) {

str3 = str1[j] + str3;

}

return str3;

}

public String test10to8(long number) {

String str4 = "";

long str1[] = new long[100];

int i = 0;

while (number != 0) {

str1[i] = number % 8;

number = (number - str1[i]) / 8;

i++;

}

for (int j = 0; j < i; j++) {

str4 = str1[j] + str4;

}

return str4;

}

public String test10to10(long number) {

String str5 = "";

long str1[] = new long[100];

int i = 0;

while (number != 0) {

str1[i] = number % 10;

number = (number - str1[i]) / 10;

i++;

}

for (int j = 0; j < i; j++) {

str5 = str1[j] + str5;

}

return str5;

}

public static void main(String[] args) {

HexConverter hc = new HexConverter();

hc.init();

}

@Override

public void actionPerformed(ActionEvent e) {

int index = jcb.getSelectedIndex();

System.out.print(index);

if (e.getSource().equals(jb1) && jcb.getItemAt(index).equals("二进制")) {

String input = jtf1.getText();

long number = Long.parseLong(input);

HexConverter h = new HexConverter();

jtf2.setText(h.test10to2(number));

} else if (e.getSource().equals(jb1)

&& jcb.getItemAt(index).equals("八进制")) {

String input = jtf1.getText();

long number = Long.parseLong(input);

HexConverter h = new HexConverter();

jtf2.setText(h.test10to8(number));

} else if (e.getSource().equals(jb1)

&& jcb.getItemAt(index).equals("十进制")) {

String input = jtf1.getText();

long number = Long.parseLong(input);

HexConverter h = new HexConverter();

jtf2.setText(h.test10to10(number));

}

if (e.getSource().equals(jb1) && jcb.getItemAt(index).equals("十六进制")) {

String input = jtf1.getText();

long number = Long.parseLong(input);

HexConverter h = new HexConverter();

jtf2.setText(h.test10to16(number));

} else if (e.getSource().equals(jb2)) {

jtf1.setText("");

jtf2.setText("");

} else if (e.getSource().equals(jb3)) {

System.exit(0);

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: