Maison > Java > le corps du texte

Définir le format décimal en direct sur JOptionPane.showInputDialog

WBOY
Libérer: 2024-02-13 18:00:11
avant
661 Les gens l'ont consulté

L'éditeur PHP Xiaoxin vous présentera comment définir le format décimal en temps réel sur JOptionPane.showInputDialog. Cette fonctionnalité permet à l'utilisateur de saisir un nombre décimal en direct et de le formater au format souhaité. De cette manière, les utilisateurs peuvent facilement saisir et traiter des valeurs décimales, améliorant ainsi l'expérience utilisateur et l'efficacité du traitement des données. Jetons un coup d'œil aux étapes spécifiques ci-dessous.

Contenu de la question

J'ai un jformattedtextfield ,它具有十进制格式,如果该值低于或等于 0,它会显示 showinputdialog pour le mettre à jour.

Comment configurer un formateur décimal « en direct » pour 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));
}
Copier après la connexion

Je ne sais pas quoi faire.

Solution de contournement

numberformatter (ou maskformatter) pourrait être ce que vous recherchez.

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);
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!