<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開(kāi)源團(tuán)隊(duì)

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

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

     

    首先演示一個(gè)NumberFormatter的例子,在這個(gè)例子中要求用戶(hù)輸入一個(gè)數(shù)字,單擊按鈕后將用戶(hù)輸入的數(shù)字乘2以后重新賦值給輸入框。用戶(hù)輸入的數(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這個(gè)無(wú)效值的時(shí)候是允許輸入的,但是當(dāng)鼠標(biāo)焦點(diǎn)移動(dòng)到另外的控件的時(shí)候,“-3”就會(huì)消失。這個(gè)行為可以通過(guò)NumberFormatter 的setAllowsInvalid方法來(lái)改變:

    圖 17.5

    圖 17.6

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

    圖 17.7

    圖 17.8

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

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

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

    字符

    說(shuō)明

    #

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

    '

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

    U

    任意大寫(xiě)字母

    L

    任意小寫(xiě)字母

    A

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

    ?

    任何字母

    *

    任何字符

    H

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

    實(shí)例化時(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開(kāi)源團(tuán)隊(duì) 閱讀(1601) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲乱亚洲乱妇无码| 一区二区三区免费视频网站| 日本久久久免费高清| 一级做a爰片久久毛片免费看 | 免费在线观看a级毛片| 国产无遮挡裸体免费视频在线观看| 亚洲成在人线中文字幕| va亚洲va日韩不卡在线观看| 久久九九AV免费精品| 亚洲国产美女精品久久久| 精品国产综合成人亚洲区| 成人性生交大片免费看无遮挡| 免费一级毛片在线播放视频免费观看永久 | 国产亚洲福利在线视频| 亚洲精品专区在线观看| 亚洲三级在线免费观看| a免费毛片在线播放| 亚洲色欲色欲www| 国产亚洲av片在线观看16女人| 精品国产麻豆免费网站| 久热免费在线视频| 老司机午夜在线视频免费观| 亚洲视频在线免费看| 久久精品国产亚洲Aⅴ香蕉 | 亚洲国产综合91精品麻豆| 免费一级毛片一级毛片aa| 国产麻豆视频免费观看| 一个人免费视频在线观看www | 国产成人无码区免费内射一片色欲 | 亚洲国产一区二区a毛片| 亚洲午夜爱爱香蕉片| 免费高清av一区二区三区| 69视频在线是免费观看| 国产免费久久精品99久久| 亚洲精品天堂成人片AV在线播放 | 亚洲色www永久网站| 91大神亚洲影视在线| 亚洲色婷婷一区二区三区| 免费A级毛片无码A| 午夜私人影院免费体验区| 日本阿v免费费视频完整版|