用java编写进制转换器_JAVA 简单进制转换器
JAVA作业写了个进制转换器...写出来的东西还蛮怪的
/*
* Author:graykido
* Coding:GBK
* */
package Caculater;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundImage;
import javax.rmi.ssl.SslRMIClientSocketFactory;
import javax.swing.*;
import javax.swing.border.Border;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.JavaBean;
import java.nio.ByteOrder;
import java.util.concurrent.Flow;
public class caculater extends JFrame {
ImageIcon icon;
JLabel label;
//输入文本框
JTextField text;
//数字按钮
JPanel numPanl;
JButton numButton[];
//输入和输出进制的框
JPanel buttonPanel;
//输出进制单选框
JLabel outbuttonlabel;
JPanel outbuttonPanel;
ButtonGroup obtg;
//输入进制单选框
JLabel inbuttonlabel;
JPanel inbuttonPanel;
ButtonGroup ibtg;
//将文本框和进制框放在一个jpanel内
JPanel thPanel;
//当前输入进制
int IHex;
caculater(String title) {
super(title);
//默认输入是十进制
this.IHex = 10;
Container ctpn = getContentPane();
//设置布局
GridLayout layout = new GridLayout(2, 2);
this.setLayout(layout);
//设置文本框
text = new JTextField();
text.setBorder(BorderFactory.createRaisedBevelBorder());
text.setFont(new Font("宋体", Font.BOLD, 25));
//设置标题图标
this.icon = new ImageIcon("src\\Caculater\\go.png");
icon.setDescription("gogogo");
Image img = this.icon.getImage();
this.setIconImage(img);
this.setLocation(100, 200);
this.setSize(1000, 600);
//设置菜单
JMenuBar jmb = new JMenuBar();
JMenu edit = new JMenu("编辑");
JMenuItem edit1 = new JMenuItem("施工中");
edit.add(edit1);
jmb.add(edit);
JMenu view = new JMenu("查看");
JMenuItem view1 = new JMenuItem("施工中");
view.add(view1);
jmb.add(view);
JMenu help = new JMenu("帮助");
JMenuItem help1 = new JMenuItem("施工中");
help.add(help1);
jmb.add(help);
this.setJMenuBar(jmb);
//图标
ImageIcon icon1 = new ImageIcon("src/Caculater/left.gif");
ImageIcon icon2 = new ImageIcon("src/Caculater/right.gif");
buttonPanel = new JPanel();
//输出进制单选框
outbuttonPanel = new JPanel();
obtg = new ButtonGroup();
JLabel outL = new JLabel("输出进制", icon1, JLabel.CENTER);
outbuttonPanel.add(outL);
outaddRadioButton("二进制", 2);
outaddRadioButton("八进制", 8);
outaddRadioButton("十进制", 10);
outaddRadioButton("十六进制", 16);
//输入进制单选框
inbuttonPanel = new JPanel();
ibtg = new ButtonGroup();
JLabel inL = new JLabel("输入进制", icon2, JLabel.CENTER);
inbuttonPanel.add(inL);
inaddRadioButton("二进制", 2);
inaddRadioButton("八进制", 8);
inaddRadioButton("十进制", 10);
//数字按钮
this.numPanl = new JPanel();
this.numButton = new JButton[20];
for (int i = 0; i < 10; i++) {
numButton[i] = addJButton(i);
numPanl.add(numButton[i]);
}
//清空文本框按钮
JButton clr = new JButton("clr");
clr.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
text.setText("");
}
}); //对于数字按钮以及清空按钮排版
numPanl.add(clr);
numPanl.setLayout(new GridLayout(4, 4));
buttonPanel.setLayout(new GridLayout(2, 1));
buttonPanel.add(outbuttonPanel);
buttonPanel.add(inbuttonPanel);
thPanel = new JPanel(new GridLayout(1, 2));
thPanel.add(text);
thPanel.add(buttonPanel);
// ctpn.add(text);
ctpn.add(thPanel);
// ctpn.add(outbuttonPanel);
// ctpn.add(inbuttonPanel);
ctpn.add(numPanl);
//关闭进程
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public JButton addJButton(int num) {
JButton button = new JButton("" + num);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
try {
Integer.parseInt(text.getText());
} catch (Exception e) {
text.setText("");
}
text.setText(text.getText() + num);
validate();
}
});
return button;
}
public void outaddRadioButton(String title, int Hex) {
JRadioButton button = new JRadioButton(title);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
//触发进制转换
try {
int num = Integer.parseInt(text.getText());
//先将框内内容转为十进制
int temp = num;
int mut = 1;
int res = 0;
if (IHex != 10) {
while (temp != 0) {
res += (temp % 10 * mut);
mut *= IHex;
temp /= 10;
}
} else {
res = num;
}
num = res;
String ans = "";
while (num != 0) {
// ans += String.valueOf(num % Hex < 10 ? num % Hex : num % Hex - 10 + 'A');
ans += (char) (num % Hex < 10 ? num % Hex + '0' : num % Hex - 10 + 'A');
num /= Hex;
}
text.setText(new StringBuffer(ans).reverse().toString());
} catch (NumberFormatException e) {
text.setText("请输入数字或检查输入数字范围是否过大");
} catch (Exception e) {
text.setText("" + e);
}
}
});
obtg.add(button);
outbuttonPanel.add(button);
}
public void inaddRadioButton(String title, int Hex) {
JRadioButton button = new JRadioButton(title);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
IHex = Hex;
for (int i = 0; i < 10; i++) {
numButton[i].setEnabled(true);
}
for (int i = Hex; i < 10; i++) {
numButton[i].setEnabled(false);
}
}
});
inbuttonPanel.add(button);
ibtg.add(button);
}
public static void main(String[] args) {
caculater fr = new caculater("计算器");
}
}
标签:10,JAVA,进制,text,Hex,add,num,new,转换器
来源: https://www.cnblogs.com/graytido/p/12976025.html
用java编写进制转换器_JAVA 简单进制转换器相关推荐
- java编写教师类输出_Java类和对象的区别和联系,超简单易懂!
在面向对象的编程语言中,类和对象必然是最核心的特性之一.本文主要介绍Java中的类和对象. 示例 以班级成员为例,班上有小红.小明.小李,还有王老师.张老师和魏老师,我们认为他们都属于"人类 ...
- java编写翻译字典数据库_java实现简单的英文文本单词翻译器功能示例
本文实例讲述了java实现简单的英文文本单词翻译器功能.分享给大家供大家参考,具体如下: 直接上代码: package fanyi; import java.io.BufferedReader; im ...
- java编写添加背景音乐代码_java代码中简单添加背景音乐(亲测有效)
在做java贪吃蛇游戏课设时,想添加背景音乐,用了以下很简单的步骤即可完成,亲测有效哦! 调用方法: new Thread(()->{while(true) {Data.playMusic(); ...
- java 发送16进制数据'_java 16进制数据递增
基本思路 String hex="ff" String binString = hex -> bin String addBinString = binString + N ...
- 用java编写战舰 游戏吗_java – 战舰游戏 – 船舶重叠
我正在使用ACM库在 Java中编写一个简单的战舰游戏. 游戏开始后,应该将船只放在画布上的随机位置,但问题是船只可能会互相覆盖,这在游戏中是不允许的.如何避免将船放在彼此之上? 我的代码是: pri ...
- java jsp中的日历表_JAVA简单的日历程序
JAVA简单的日历程序 作者:未知 文章来源:www.jspcn.net 发布日期:2005年01月19日 /**以下是日历的代码程序 有疑问 回信 ycj@18e.net **/ //Cale ...
- java编写静态工具类_Java编程中静态内部类与同步类的写法示例
java静态内部类 将某个内部类定义为静态类,跟将其他类定义为静态类的方法基本相同,引用规则也基本一致.不过其细节方面仍然有很大的不同.具体来说,主要有如下几个地方要引起各位程序开发人员的注意. (一 ...
- Java 编写推箱子报告_Java推箱子怎么写啊?
展开全部 这是我之前写的一篇java实现推箱子算法的文章,简单的给你看一下: <推箱子游戏>是一款益智32313133353236313431303231363533e59b9ee7ad9 ...
- java利用redis实现排行榜_Java简单使用redis-zset实现排行榜
简单使用redis-zset实现排行榜 此方法实现一个根据某字段的查询次数进行排行,查询的次数越多排行越前(从大到小排序),适用于初学者 1.添加依赖 org.springframework.boot ...
最新文章
- dedecms 财付通接口
- mybatis foreach map_Spring Boot(五):春眠不觉晓,Mybatis知多少
- 如何彻底卸载mysql(xp)
- 后浪优秀!21 岁小伙兼职程序员养家,大三存款达 6 位数
- 在linux 下配置firewalld
- c++11并发指南系列
- MQTT代理服务器特性对比
- JavaScript中的 in 操作符
- 【pwnable.kr】passcode
- oracle 平均值 最大值,Oracle分析函数三——SUM,AVG,MIN,MAX,COUNT
- nginx(三)初步搭建nginx虚拟主机
- Chrome 大版本更新来了,这是一次「史诗级」增强
- 硬盘测试软件测试有问题,用crystaldiskinfo工具检测出来硬盘不良怎么办
- STM32接电机驱动,杜邦线供电,然后反烧问题
- 数独基本规则_数独游戏的入门规则
- 基础软件照搬开源不可取,自力更生才是正途
- 使用python快速插入一百万数据
- 可以在保利威视后台查看自己开发CMS系统帐号看了某个视频多长时间
- iPhoneX APP界面设计尺寸图-庞姿姿
- Java导出excel文件
热门文章
- Flooded! POJ - 1877 模拟题
- MATLAB许可证过期的解决办法
- 拼多多微信页面h5 html,拼多多(7pdd)微信跳转h5页面打开app跳转任意url关注技术weixin://dl/business/?ticket...
- 北京飞漫软件魏永明:浏览器技术与三网融合
- TensorFlow学习笔记(二)把数字标签转化成onehot标签
- 用P、V操作解决进程同步问题的解题步骤
- Python 在Windows上终止子过程(subprocess)
- netty4 io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1
- “Stream has already been operated upon or closed” Exception in Java
- git分支代码提交主干