java它 —— 图形界面(两)

java它 —— 图形界面(两)

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

<img src="//img-blog.csdn.net/20150604093446275?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTQ3OTg3NQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;

public class MoneyJFrame extends JFrame implements CaretListener{
	private JTextField textMoney,textStr;
	private MessageJDialog jdialog;
	
	public MoneyJFrame(){
		super("金额的中文大写形式");
		this.setSize(360, 90);
		this.setLocationRelativeTo(null);//设置窗体居中
		this.setResizable(false);//设置窗体大小不能改变
		this.setBackground(java.awt.Color.lightGray);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);//单击关闭button时。结束程序执行
		this.getContentPane().setLayout(new FlowLayout(FlowLayout.RIGHT));
		this.getContentPane().add(new JLabel("金额"));
		textMoney=new JTextField("12345678.90",22);
		this.getContentPane().add(textMoney);
		textMoney.addCaretListener(this);//注冊文本编辑事件。即文本编辑器中要有变化就响应
		this.getContentPane().add(new JLabel("中文大写形式"));
		textStr=new JTextField(22);
		textStr.setHorizontalAlignment(JTextField.RIGHT);
		textStr.setEditable(false);
		this.getContentPane().add(textStr);
		caretUpdate(null);//执行文本编辑事件,相当于初始化
		this.setVisible(true);
		jdialog=new MessageJDialog();//创建对话框对象
	}
	
	private class MessageJDialog extends JDialog{//消息对话框,私有实例内部类,对象嵌套
		private JLabel jlabel;
		public MessageJDialog(){//内部类的构造方法
			super(MoneyJFrame.this,"提示",true);//MoneyJFrame.this引用外部类的当前对象(即对话框所依附的框架窗体)true表示吗。模式窗体(即仅仅有对话窗体关闭或操作完才干对依附框架窗体进行操作)
			this.setSize(300, 80);
			//this.setLayout(new GridLayout(2,1));
			jlabel=new JLabel("",JLabel.CENTER);
			this.getContentPane().add(jlabel);
			this.setDefaultCloseOperation(HIDE_ON_CLOSE);
			//this.add(new JButton("确定"));
		}
		
		private void show(String message){//对话框的显示
			jlabel.setText(message);
			this.setLocation(MoneyJFrame.this.getX()+100, MoneyJFrame.this.getY()+100);//对话框位置在框架下方
			this.setVisible(true);
		}
	}
	
	public void caretUpdate(CaretEvent e) {//文本编辑事件处理方法
		try {
			double x=Double.parseDouble(textMoney.getText());
			textStr.setText(RMBtoString(x));
		} catch (NumberFormatException e1) {
			jdialog.show("\""+textMoney.getText()+"\" 不能转换成浮点数,请又一次输入!");
		}
	}
	
	private String RMBtoString(double x) {//将x表示的金额转换成中文大写形式
		String yuan="亿千百拾万千百拾元角分";
		String digit="零壹贰叁肆伍陆柒捌玖";
		String result="";
		int y=(int) (x*100);//浮点数扩充100倍后取整(保留两位有效数字)
		for(int i=yuan.length()-1;y>0&&i>0;i--,y/=10){
			result=""+digit.charAt(y%10)+yuan.charAt(i)+result;
		}
		return result;
	}

	public static void main(String[] args) {
		new MoneyJFrame();
	}


}

版权声明:本文博客原创文章。博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117209.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • PAT乙级考后杂谈

    PAT乙级考后杂谈上周末去隔壁大学参加了PAT乙级的考试,结果没想到第一次考试就出了点小问题…本来考试是在1.30全国各个考点都同时开始(因为要排名),结果快到1.30的时候机房连不上网络,最后我们这个考点直接移后到将近2.30才开始考试,虽然结束时间也移后了,不过这多年不遇的突发情况直接让我遇到也太真实了。。。小插曲过后,再说下考试内容,乙级确实难度不大,三小时五道题,前两道题基本是送分题,虽然作者本人比较菜…

  • SQL查询语句大全(个人总结)

    SQL查询语句大全(个人总结)全面的sql查询总结

  • 一分钟学习静态网页制作[通俗易懂]

    一分钟学习静态网页制作[通俗易懂]第一章静态网页制作:什么叫做HTML:超文本标记语言HTML优势:世界知名浏览器都支持Google,苹果,微软,等等……还有市场需求跨平台:1.win系统2.苹果系统3.linux系统w3c标准包涵:1.结构化标准(XHEML,XML)2.表现化标准(CSS)3.行为化标准(DOM,ECMAScript)网页的基本标签:1.标题标签:h1~h…

  • Spring Security基本配置和使用

    Spring Security基本配置和使用

  • 清华大学团队:人脸识别爆出巨大丑闻,15分钟解锁19款手机

    清华大学团队:人脸识别爆出巨大丑闻,15分钟解锁19款手机1清华大学的RealAI团队15分钟解锁19款手机刚刚,清华大学的一条重大发现,利用人脸识别技术的漏洞,“15分钟解锁19个陌生智能国产手机”的事件,引发无数网友关注。据悉,清华大学的RealAI团队共选取了20款手机,其中1款是国外的,另外19款都是我们国产的智能手机,居来自排名前五的国产手机品牌,每一品牌下选取了3-4款不同价位的手机型号,覆盖低端机到旗舰机。1)测试步骤如下:第一步,清华大学的测试人员,把19部国产手机,人脸识别全部绑定为旁边的“1号同学”;

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号