<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    如鵬網(wǎng) 大學(xué)生計(jì)算機(jī)學(xué)習(xí)社區(qū)

    CowNew開源團(tuán)隊(duì)

    http://www.cownew.com 郵件請聯(lián)系 about521 at 163.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      363 隨筆 :: 2 文章 :: 808 評論 :: 0 Trackbacks

     

    首先演示一個NumberFormatter的例子,在這個例子中要求用戶輸入一個數(shù)字,單擊按鈕后將用戶輸入的數(shù)字乘2以后重新賦值給輸入框。用戶輸入的數(shù)字必須大于0,小于100。

    package com.cownew.Char19;

    import java.awt.Font;

    import java.awt.Rectangle;

    import java.math.BigDecimal;

    import javax.swing.JButton;

    import javax.swing.JDialog;

    import javax.swing.JFormattedTextField;

    import javax.swing.JOptionPane;

    import javax.swing.JPanel;

    import javax.swing.text.NumberFormatter;

    import javax.swing.JTextField;

    public class NumberFormaterDialog1 extends JDialog

    {

    private JPanel jContentPane = null;

    private JFormattedTextField numTxtField = null;

    private JButton jButton = null;

    private JTextField jTextField = null;

    private JFormattedTextField getNumTxtField()

    {

    if (numTxtField == null)

    {

    NumberFormatter numFormater = new NumberFormatter();

    numFormater.setMaximum(new BigDecimal(100));

    numFormater.setMinimum(new BigDecimal(0));

    numTxtField = new JFormattedTextField(numFormater);

    numTxtField.setBounds(new Rectangle(56, 38, 154, 24));

    }

    return numTxtField;

    }

    private JButton getJButton()

    {

    if (jButton == null)

    {

    jButton = new JButton();

    jButton.setBounds(new Rectangle(78, 80, 81, 36));

    jButton.setFont(new Font("Dialog", Font.PLAIN, 18));

    jButton.setText("計(jì)算");

    jButton.addActionListener(new java.awt.event.ActionListener() {

    public void actionPerformed(java.awt.event.ActionEvent e)

    {

    BigDecimal oldValue = (BigDecimal) getNumTxtField()

    .getValue();

    if (oldValue != null)

    {

    getNumTxtField().setValue(

    oldValue.multiply(new BigDecimal(2)));

    }

    else

    {

    JOptionPane.showMessageDialog(

    NumberFormaterDialog1.this,"值非法");

    }

    }

    });

    }

    return jButton;

    }

    private JTextField getJTextField()

    {

    if (jTextField == null)

    {

    jTextField = new JTextField();

    jTextField.setBounds(new Rectangle(176, 83, 76, 22));

    }

    return jTextField;

    }

    public static void main(String[] args)

    {

    NumberFormaterDialog1 dlg = new NumberFormaterDialog1();

    dlg.show();

    }

    public NumberFormaterDialog1()

    {

    super();

    initialize();

    }

    private void initialize()

    {

    this.setSize(300, 200);

    this.setContentPane(getJContentPane());

    this.setTitle("JFrame");

    }

    private JPanel getJContentPane()

    {

    if (jContentPane == null)

    {

    jContentPane = new JPanel();

    jContentPane.setLayout(null);

    jContentPane.add(getNumTxtField(), null);

    jContentPane.add(getJButton(), null);

    jContentPane.add(getJTextField(), null);

    }

    return jContentPane;

    }

    }

    當(dāng)我們輸入-3這個無效值的時候是允許輸入的,但是當(dāng)鼠標(biāo)焦點(diǎn)移動到另外的控件的時候,“-3”就會消失。這個行為可以通過NumberFormatter 的setAllowsInvalid方法來改變:

    圖 17.5

    圖 17.6

    如果輸入“10”這個合法的數(shù)字,單擊“計(jì)算”按鈕即可算出正確的值:

    圖 17.7

    圖 17.8

    案例系統(tǒng)中的com.cownew.ctk.ui.swing.JNumberTextField就是為了方便使用而從JFormattedTextField派生的一個數(shù)字輸入控件。

    DateFormatter的使用也是類似的,也允許設(shè)置最大最小值,實(shí)際上只要從InternationalFormatter派生的類,并且數(shù)據(jù)類型實(shí)現(xiàn)了Comparable接口都可以設(shè)置極值。

    MaskFormatter允許開發(fā)人員使用掩碼指定更加復(fù)雜的校驗(yàn)規(guī)則。掩碼是一串特殊的字符串,每個字符的含義如下表所示:

    字符

    說明

    #

    匹配任何數(shù)字字符

    '

    轉(zhuǎn)義符,用來將格式字符當(dāng)成普通字符用

    U

    任意大寫字母

    L

    任意小寫字母

    A

    任意數(shù)字或者字母

    ?

    任何字母

    *

    任何字符

    H

    任何十六進(jìn)制字符 (0-9, a-f or A-F).

    實(shí)例化時指定其掩碼即可:

    MaskFormatter formatter = new MaskFormatter("0x***");

    formatter.setValidCharacters("0123456789abcdefABCDEF");

    還允許為掩碼設(shè)定占位符,這樣可用性更好:

    MaskFormatter formatter = new MaskFormatter("###-####");

    formatter.setPlaceholderCharacter('_');

    formatter.getDisplayValue(tf, "123");

    posted on 2007-04-26 09:29 CowNew開源團(tuán)隊(duì) 閱讀(1600) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 嫩草影院在线免费观看| 免费国产黄网站在线观看动图| 99久久免费国产精品热| 亚洲国产夜色在线观看| 99re6热视频精品免费观看| 亚洲综合AV在线在线播放| 亚洲人精品亚洲人成在线| 国产免费伦精品一区二区三区| 五月婷婷免费视频| h视频在线观看免费完整版| 免费中文字幕不卡视频| 国产亚洲成在线播放va| 四虎影库久免费视频| 国产AV无码专区亚洲AV麻豆丫| 国产精品免费精品自在线观看| 亚洲深深色噜噜狠狠爱网站| 亚洲丁香婷婷综合久久| 国产成人免费片在线观看| 一区二区三区免费在线视频| 怡红院亚洲怡红院首页| 午夜不卡久久精品无码免费| 91亚洲精品视频| 国产猛男猛女超爽免费视频| 亚洲天天做日日做天天看| av免费不卡国产观看| 亚洲国产成人无码AV在线影院| 又粗又大又猛又爽免费视频 | 久久久久久a亚洲欧洲AV| 亚洲国产成人高清在线观看| 在线看亚洲十八禁网站| 日韩亚洲变态另类中文| 无码囯产精品一区二区免费| 亚洲精品人成网在线播放影院| 国产在线19禁免费观看| 91视频精品全国免费观看| 亚洲国产日产无码精品| 免费jjzz在在线播放国产| 久久精品视频免费看| 亚洲乱妇熟女爽到高潮的片| 成人a免费α片在线视频网站 | 国产亚洲真人做受在线观看|