<img src="http://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();
} }

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

java它 ------ 图形界面(两)的更多相关文章

  1. Java自学-图形界面 容器

    Swing 的容器 JFrame和JDialog java的图形界面中,容器是用来存放 按钮,输入框等组件的. 窗体型容器有两个,一个是JFrame,一个是JDialog 步骤 1 : JFrame ...

  2. 【计项02组01号】Java版图形界面计算器

    Java版图形界面计算器1.0版本 项目分析[1.0] 组成部分 代码结构 (1)窗口的创建 在<JDK 核心 API>中我们提到,创建一个窗口需要使用 JFrame 类.在本实验中,我们 ...

  3. Java的图形界面依然是跨平台的

    Awt:抽象窗口工具箱,它由三部分组成: ①组件:界面元素: ②容器:装载组件的容器(例如窗体): ③布局管理器:负责决定容器中组件的摆放位置. 图形界面的应用分四步: ① 选择一个容器: ⑴wind ...

  4. Java Swing 图形界面开发(目录)

    Java Swing 图形界面开发(目录) 2017年05月30日 23:50:42 阅读数:5228 本文链接: http://blog.csdn.net/xietansheng/article/d ...

  5. Java Swing图形界面开发

    本文转自xietansheng的CSDN博客内容,这是自己见过的最通俗易懂.最适合快速上手做Java GUI开发的教程了,这里整合一下作为自己以后复习的笔记: 原文地址:https://blog.cs ...

  6. Java GUI图形界面开发工具

    Applet 应用程序     一种可以在 Web 浏览器中执行的小程序,扩展了浏览器中的网页功能. 缺: 1.需要下载 Applet 及其相关文件 2.Applet 的功能是受限制的 优: 3.无需 ...

  7. Java自学-图形界面 Swing中的线程

    Swing中的线程 步骤 1 : 三种线程 在Swing程序的开发中,需要建立3种线程的概念 初始化线程 初始化线程用于创建各种容器,组件并显示他们,一旦创建并显示,初始化线程的任务就结束了. 事件调 ...

  8. JAVA与图形界面开发(Applet应用程序、AWT库、Swing)

    Applet 1)简单说,Applet就是嵌入到网页中的小程序,Java代码. 2)编写Applet程序,要继承JApplet类,并根据自己需要覆写相关方法(init.start.stop.destr ...

  9. java的图形界面初学惯用

    1.单一界面的创建 public void mainFrame() { HashMap<String, Component> views = new HashMap<String, ...

随机推荐

  1. 努比亚 Z5 mini刷机包 omni4.4.2改动V4.0 自用版 精简 MIUI特效

    ROM介绍: 第一版: 1.基于lwang适配的omni4.4.2第二版改动,少量精简改动 2.设置加入"自启项管理",体验更快.更顺滑 3.替换特效为XUI特效 4.改动host ...

  2. Windows Phone开发(29):隔离存储C

    原文:Windows Phone开发(29):隔离存储C 本文是隔离存储的第三节,大家先喝杯咖啡放松,今天的内容也是非常简单,我们就聊一件东东--用户设置. 当然了,可能翻译为应用程序设置合适一些,不 ...

  3. 不合规范的html段落php处理细则

    最近业余时间在维护一个rss聚合应用,就发现很多网站feed的条目摘要存在各种问题,用strip_tags一刀切吧,对摘要的段落和样式扭曲了 例如:有一些网站的摘要是截断输出,例如指定的摘要长度截断, ...

  4. 执行Sql块

    import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import oracle.C ...

  5. memcache 集群

    memcache 是一个分布式的缓存系统,但是本身没有提供集群功能,在大型应用的情况下容易成为瓶颈.但是客户端这个时候可以自由扩展,分两阶段实现.第一阶段:key 要先根据一定的算法映射到一台memc ...

  6. cocos2dx 3.2 定义自己使用rapidjson阅读json数据

    一.说明 我在这里得到的只是一个简单的定义string和Int种类,其他数据类型可以被替换向上. 两.头文件 class JsonReadUtils { public: static JsonRead ...

  7. port与大全portClose方法

    在网络技术,port(Port)通常,有两种含义:首先,物理意义port,例,ADSL Modem.枢纽.开关.路由器连接其他网络设备的接口,如RJ-45port.SCport等等.第二个是逻辑意义p ...

  8. C++实现堆排序

    堆排序是合并排序和插入排序排序方法共同的长处.它的时间复杂度O(nlgn),这也是一个地方排序算法:在任何时候,外阵中拥有唯一不变的输入数组存储的元素.引进第一家引进什么样的堆堆. 1.建堆:堆数据结 ...

  9. centos7安装并配置svn(转)

    一.安装 1. 通过 yum install subversion来安装 2. 查看svn版本 使用: svnserve –version 3. 创建svn版本库 使用命令: svnadmin cre ...

  10. oracle存储过程的例子

    oracle存储过程的例子 分类: 数据(仓)库及处理 2010-05-03 17:15 1055人阅读 评论(2)收藏 举报 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的 ...