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();
	}


}

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Asp.net Session 与Cookie的应用

    写程序的很多人都知道的,Session是服务器端的东西而Cooike是客户端的东西。因为B/S模式是无状态模式,它们的应用都是要存储客户端的某些登录或是加密的信息。Session存在于服务器端,当然

    2021年12月27日
    35
  • MySql的安装、配置(转)「建议收藏」

    MySql的安装、配置(转)

    2022年4月3日
    29
  • 森林岔路91%_森林的指路牌

    森林岔路91%_森林的指路牌原题链接森森开了一家快递公司,叫森森快递。因为公司刚刚开张,所以业务路线很简单,可以认为是一条直线上的N个城市,这些城市从左到右依次从0到(N−1)编号。由于道路限制,第i号城市(i=0,⋯,N−2)与第(i+1)号城市中间往返的运输货物重量在同一时刻不能超过C​i​​ 公斤。公司开张后很快接到了Q张订单,其中j张订单描述了某些指定的货物要从S​j​​ 号城市运输到T​j​​ 号城市。这里我们简单地假设所有货物都有无限货源,森森会不定时地挑选其中一部分货物进行运输。安全起见,这些货物不会在中

    2022年8月8日
    1
  • phy芯片与rj45接法_232接口详细接线图

    phy芯片与rj45接法_232接口详细接线图千兆PHY通过网络变压器连接到RJ45接口,一共有4对差分线MDI[0..3]+/-。一般的接法是: MDI[0]+:RJ45[1] MDI[0]-:RJ45[2] MDI[1]+:RJ45[3] MDI[1]-:RJ45[6] MDI[2]+:RJ45[4] MDI[2]-:RJ45[5] MDI[3]+:RJ45[7]

    2022年9月17日
    0
  • docker使用mysql_运行docker命令

    docker使用mysql_运行docker命令docker安装和启动mysql

    2022年10月5日
    0
  • python中删除特定字符串

    python中删除特定字符串现在有一个字符串,有一些不想要的单词和特殊字符importretext=’wo,didi;wode,;wode’text0=text.replace(‘didi’,”)print(re.sub(‘[,;]’,”,text0))先用替换后用子串可以得到自己想要的结果:wowodewode python中字符串自带的split方法一次只能使用一个字符对字…

    2022年5月30日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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