java之 ------ 圖形介面(二)

來源:互聯網
上載者:User

標籤:圖形介面   java   

<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);//單擊關閉按鈕時,結束程式運行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之 ------ 圖形介面(二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.