首頁 > Java > 主體

將即時十進位格式設定為 JOptionPane.showInputDialog

WBOY
發布: 2024-02-13 18:00:11
轉載
660 人瀏覽過

php小編小新將為大家介紹如何將即時十進位格式設定為JOptionPane.showInputDialog。此功能可讓使用者輸入即時的十進制數,並將其格式化為所需的格式。透過這種方式,使用者可以輕鬆輸入和處理十進制數值,提高了使用者體驗和資料處理效率。下面我們一起來看看具體的操作步驟。

問題內容

我有一個jformattedtextfield ,它具有十進位格式,如果該值低於或等於0,它會顯示showinputdialog 來更新它。

如何為 showinputdialog 設定「即時」十進位格式化程式?

// Format
NumberFormat format = DecimalFormat.getInstance();
format.setMinimumFractionDigits(2);
format.setMaximumFractionDigits(2);
format.setRoundingMode(RoundingMode.HALF_UP);


// Text field
JFormattedTextField textField = new JFormattedTextField();


// Validation
String regex = "[.,]";
String valueString = textField.getText().split(",")[0].replaceAll(regex, "");
int value = (int) Double.parseDouble(valueString);

while(value <= 0) {
    value = Integer.valueOf(JOptionPane.showInputDialog(parentComponent, "The value must be greater than 0", "Warning", JOptionPane.WARNING_MESSAGE));
}
登入後複製

我不知道該怎麼做。

解決方法

numberformatter(或 maskformatter)可能就是您正在尋找的。

NumberFormat format = DecimalFormat.getInstance();
format.setMinimumFractionDigits(2);
format.setMaximumFractionDigits(2);
format.setRoundingMode(RoundingMode.HALF_UP);

NumberFormatter formatter = new NumberFormatter(format); //also check MaskFormatter 
formatter.setValueClass(Integer.class);
formatter.setMinimum(0);
formatter.setMaximum(Integer.MAX_VALUE);
formatter.setAllowsInvalid(false);

// value is be committed on each keystroke instead of focus lost
    formatter.setCommitsOnValidEdit(true);
    
 JFormattedTextField textField  = new JFormattedTextField(formatter);
登入後複製

以上是將即時十進位格式設定為 JOptionPane.showInputDialog的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!