在窗体窗口上创建复选框、单选框、文本区域、单行文本框等组件,并实现根据用户输入的10 进制数,选择不同选项可转换为2、8、16 进制数。
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JFrame;
public class JZtransform extends Frame implements ItemListener{
TextArea area=new TextArea(6,30);
String Item[]= {"2进制","8进制","16进制","10进制"};
Checkbox checkbox[]=new Checkbox[5];
Checkbox radio[]=new Checkbox[5];
Label label=new Label("请输入10进制数");
TextField field=new TextField(10);
public JZtransform() {
setLayout(new FlowLayout());
add(label);
add(field);
add(area);
add(new Label("请选择进制:"));
for(int i=0;i<4;i++) {
checkbox[i]=new Checkbox(Item[i]);
add(checkbox[i]);
checkbox[i].addItemListener(this);
}
CheckboxGroup checkboxGroup=new CheckboxGroup();
add(new Label("请选择进制:"));
for(int i=0;i<4;i++) {
radio[i]=new Checkbox(Item[i],checkboxGroup,false);
add(radio[i]);
radio[i].addItemListener(this);
}
setBounds(800,100,350,300);
setVisible(true);
}
public void itemStateChanged(ItemEvent e) {
int x=Integer.parseInt(field.getText());
if(e.getItem()=="2进制") {
area.append(x+"转化为"+e.getItem()+"后等于"+Integer.toBinaryString(x)+"\n");
}
if(e.getItem()=="8进制") {
area.append(x+"转化为"+e.getItem()+"后等于"+Integer.toOctalString(x)+"\n");
}
if(e.getItem()=="16进制") {
area.append(x+"转化为"+e.getItem()+"后等于"+Integer.toHexString(x)+"\n");
}
if(e.getItem()=="10进制") {
area.append(x+"转化为"+e.getItem()+"后等于"+x+"\n");
}
}
public static void main(String[] args) {
new JZtransform();
}
}
运行结果:
以上代码经过测试,请放心使用