import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class Scale {
JFrame f;
JPanel [] p=new JPanel[4];
JButton [] c=new JButton[13];
JLabel [] t=new JLabel[2];
JTextField [] tf=new JTextField[2];
String [] bt={"二进制","八进制","十六进制","1","2","3","4","5","6","7","8","9","0"};
public Scale(){
f=new JFrame("进制转换计算器");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(400,400);
f.setLayout(new GridLayout(4,1));
p[0]=new JPanel(new GridLayout(1,2));
p[1]=new JPanel(new GridLayout(1,2));
p[2]=new JPanel(new GridLayout(4,3));
p[3]=new JPanel(new GridLayout(1,1));
for(int i=0;i<13;i++)
{
c[i]=new JButton(bt[i]);
}
c[0].addActionListener(new Listener1());
c[1].addActionListener(new Listener2());
c[2].addActionListener(new Listener3());
c[3].addActionListener(new Listener4());
c[4].addActionListener(new Listener5());
c[5].addActionListener(new Listener6());
c[6].addActionListener(new Listener7());
c[7].addActionListener(new Listener8());
c[8].addActionListener(new Listener9());
c[9].addActionListener(new Listener10());
c[10].addActionListener(new Listener11());
c[11].addActionListener(new Listener12());
c[12].addActionListener(new Listener13());
t[0]=new JLabel("输入");
t[1]=new JLabel("输出");
tf[0]=new JTextField();
tf[1]=new JTextField();
for(int i=0;i<2;i++)
{
p[i].add(t[i]);
p[i].add(tf[i]);
}
for(int i=0;i<12;i++)
{
p[2].add(c[i]);
}
p[3].add(c[12]);
for(int i=0;i<4;i++)
{
f.add(p[i]);
}
f.setVisible(true);
}
public String binary(int num){
String binaryNum="";
int [] arr=new int[32];
int v,j=0;
if(num==0)
return binaryNum=binaryNum+"0";
else{
for(int i=31;i>=0;i--)
{
v=num&1;
arr[i]=v;
num=num>>1;
}
one:for(int i=0;i<32;i++)
{
if(arr[i]==0&&arr[i+1]!=0)
{
j=i+1;
break one;
}
}
for(int i=j;i<32;i++ )
{
binaryNum=binaryNum+arr[i];
}
return binaryNum;
}
}
public String octal(int num){
String octalNum="0";
int [] arr=new int[11];
int v,j=0;
if(num==0)
return octalNum=octalNum+"0";
else{
for(int i=10;i>=0;i--)
{
v=num&7;
arr[i]=v;
num=num>>3;
}
one:for(int i=0;i<11;i++)
{
if(arr[i]==0&&arr[i+1]!=0)
{
j=i+1;
break one;
}
}
for(int i=j;i<11;i++ )
{
octalNum=octalNum+arr[i];
}
return octalNum;
}
}
public String hexadecimal(int num){
String hexadecimalNum="0x";
char [] str={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int [] arr=new int[8];
int v,j=0;
if(num==0)
return hexadecimalNum=hexadecimalNum+"0";
else
{
for(int i=7;i>=0;i--)
{
v=num&15;
arr[i]=v;
num=num>>4;
}
one:for(int i=0;i<8;i++)
{
if(arr[i]==0&&arr[i+1]!=0)
{
j=i+1;
break one;
}
}
for(int i=j;i<8;i++ )
{
hexadecimalNum=hexadecimalNum+str[arr[i]];
}
return hexadecimalNum;
}
}
public static void main(String[] args){
new Scale();
}
class Listener1 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
int num1 = Integer.parseInt(tf[0].getText().trim());
tf[1].setText(binary(num1));
}
}
class Listener2 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
int num1=Integer.parseInt(tf[0].getText().trim());
tf[1].setText(octal(num1));
}
}
class Listener3 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
int num1=Integer.parseInt(tf[0].getText().trim());
tf[1].setText(hexadecimal(num1));
}
}
class Listener4 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
tf[0].setText(tf[0].getText()+bt[3]);
}
}
class Listener5 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
tf[0].setText(tf[0].getText()+bt[4]);
}
}
class Listener6 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
tf[0].setText(tf[0].getText()+bt[5]);
}
}
class Listener7 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
tf[0].setText(tf[0].getText()+bt[6]);
}
}
class Listener8 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
tf[0].setText(tf[0].getText()+bt[7]);
}
}
class Listener9 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
tf[0].setText(tf[0].getText()+bt[8]);
}
}
class Listener10 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
tf[0].setText(tf[0].getText()+bt[9]);
}
}
class Listener11 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
tf[0].setText(tf[0].getText()+bt[10]);
}
}
class Listener12 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
tf[0].setText(tf[0].getText()+bt[11]);
}
}
class Listener13 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
tf[0].setText(tf[0].getText()+bt[12]);
}
}
}
更多推荐
java 做的简易进制计算器
发布评论