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 做的简易进制计算器