日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java文本框默认格式化,XJL:Swing中的格式化文本框

發布時間:2024/8/5 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java文本框默认格式化,XJL:Swing中的格式化文本框 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先演示一個NumberFormatter的例子,在這個例子中要求用戶輸入一個數字,單擊按鈕后將用戶輸入的數字乘2以后重新賦值給輸入框。用戶輸入的數字必須大于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("計算");

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;

}

}

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

圖 17.5

圖 17.6

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

圖 17.7

圖 17.8

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

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

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

字符

說明

#

匹配任何數字字符

'

轉義符,用來將格式字符當成普通字符用

U

任意大寫字母

L

任意小寫字母

A

任意數字或者字母

?

任何字母

*

任何字符

H

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

實例化時指定其掩碼即可:

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

formatter.setValidCharacters("0123456789abcdefABCDEF");

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

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

formatter.setPlaceholderCharacter('_');

formatter.getDisplayValue(tf, "123");

總結

以上是生活随笔為你收集整理的java文本框默认格式化,XJL:Swing中的格式化文本框的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。