关于一个java 进制转换的swing

来源:互联网 发布:决战武林翅膀进阶数据 编辑:程序博客网 时间:2024/06/11 19:03

package 实验六1;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ConversionDemo extends JFrame implements ActionListener{
 JPanel[] jp=
 {
  new JPanel(),new JPanel(),new JPanel(),new JPanel(),new JPanel(),new JPanel(),new JPanel()
 };
 JLabel jlabel1=new JLabel("<html><font color=red size=5>数据转换");
 JLabel jlabel2=new JLabel("<html><font color=blue size=5>转换成==>");
 JTextField jtf1=new JTextField(10);
 JTextField jtf2=new JTextField(10);
 ButtonGroup bg1=new ButtonGroup();
 ButtonGroup bg2=new ButtonGroup();
 JRadioButton[] jrbArray1=
 {
   new JRadioButton("2"), new JRadioButton("8"),
   new JRadioButton("10"), new JRadioButton("16")
 };
 JRadioButton[] jrbArray2=
 {
   new JRadioButton("2"), new JRadioButton("8"),
   new JRadioButton("10"), new JRadioButton("16")
 };
 JButton jb1=new JButton("OK");
 JButton jb2=new JButton("CLEAR");
 public ConversionDemo()
 {
  setLayout(new GridLayout(7, 1));
  jp[0].add(jlabel1);
  jp[1].add(jtf1);
  for(int i=0;i<jrbArray1.length;i++)
  {
   bg1.add(jrbArray1[i]);
   jp[2].add(jrbArray1[i]);
  }
  jp[3].add(jlabel2);
  jp[4].add(jtf2);
  jtf2.setEditable(false);
  for(int i=0;i<jrbArray2.length;i++)
  {
   bg2.add(jrbArray2[i]);
   jp[5].add(jrbArray2[i]);
  }
  jp[6].add(jb1);
  jp[6].add(jb2);
  for(int i=0;i<jp.length;i++)
  {
   add(jp[i]);
  }
     setTitle("GUI实验题");  //设置窗体标题,大小,可见性
  setVisible(true);
  setSize(300, 350);
  //注册监听器
  for(int i=0;i<4;i++)
  {
   
   jrbArray1[i].addActionListener(this);
   jrbArray2[i].addActionListener(this);
  }
  jb1.addActionListener(this);
  jb2.addActionListener(this);
  
  
  
 }
 public void actionPerformed(ActionEvent e)
 {
  if(e.getSource()==jb2)
  {
   bg1.clearSelection();
   bg2.clearSelection();
   jtf1.setText("");
   jtf2.setText("");
  }
  if(e.getSource()==jb1)
  {
   String input=jtf1.getText();
   String output=null;
   
   for(int i=0;i<4;i++)
   {
    if(jrbArray1[i].isSelected()&&jrbArray2[i].isSelected())
     output=input;
   }
   if(jrbArray1[0].isSelected()&&jrbArray2[1].isSelected())
   {
    int a=Integer.valueOf(input,2);
    output=Integer.toOctalString(a);
   }
   if(jrbArray1[0].isSelected()&&jrbArray2[2].isSelected())
   {
    output=Integer.valueOf(input,2).toString();
    
   }
   if(jrbArray1[0].isSelected()&&jrbArray2[3].isSelected())
   {
    int a=Integer.valueOf(input,2);
    output=Integer.toHexString(a);
   }
   if(jrbArray1[1].isSelected()&&jrbArray2[0].isSelected())
   {
    int a=Integer.valueOf(input,8);
    output=Integer.toBinaryString(a);
   }
   if(jrbArray1[1].isSelected()&&jrbArray2[2].isSelected())
   {
    output=Integer.valueOf(input,8).toString();
    
   }
   if(jrbArray1[1].isSelected()&&jrbArray2[3].isSelected())
   {
    int a=Integer.valueOf(input,8);
    output=Integer.toHexString(a);
   }
   if(jrbArray1[2].isSelected()&&jrbArray2[0].isSelected())
   {
    int a=Integer.parseInt(input);
    output=Integer.toBinaryString(a);
   }
   if(jrbArray1[2].isSelected()&&jrbArray2[1].isSelected())
   {
    int a=Integer.parseInt(input);
    output=Integer.toOctalString(a);
   }
   if(jrbArray1[2].isSelected()&&jrbArray2[3].isSelected())
   {
    int a=Integer.parseInt(input);
    
   }
   if(jrbArray1[3].isSelected()&&jrbArray2[0].isSelected())
   {
    int a=Integer.valueOf(input,16);
    output=Integer.toBinaryString(a);
   }
   if(jrbArray1[3].isSelected()&&jrbArray2[1].isSelected())
   {
    int a=Integer.valueOf(input,16);
    output=Integer.toOctalString(a);
   }
   if(jrbArray1[3].isSelected()&&jrbArray2[2].isSelected())
   {
    int a=Integer.valueOf(input,16);
    output=Integer.toString(a);
   }
      jtf2.setText(output);
  }
  
  }
  
 
   public static void main(String[] args) {
    ConversionDemo conversion=new ConversionDemo();

 }
}