Rumah >Java >Tetapkan format perpuluhan langsung kepada JOptionPane.showInputDialog

Tetapkan format perpuluhan langsung kepada JOptionPane.showInputDialog

WBOY
WBOYke hadapan
2024-02-13 18:00:11709semak imbas

Editor PHP Xiaoxin akan memperkenalkan kepada anda cara menetapkan format perpuluhan masa nyata kepada JOptionPane.showInputDialog. Ciri ini membolehkan pengguna memasukkan nombor perpuluhan langsung dan memformatkannya ke dalam format yang dikehendaki. Dengan cara ini, pengguna boleh memasukkan dan memproses nilai perpuluhan dengan mudah, yang meningkatkan pengalaman pengguna dan kecekapan pemprosesan data. Mari kita lihat langkah-langkah khusus di bawah.

Kandungan soalan

Saya ada jformattedtextfield ,它具有十进制格式,如果该值低于或等于 0,它会显示 showinputdialog untuk mengemas kininya.

Bagaimana untuk menyediakan pemformat perpuluhan "langsung" untuk 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));
}

Saya tidak tahu nak buat apa.

Penyelesaian

numberformatter (atau maskformatter) mungkin yang anda cari. ​​p>

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);

Atas ialah kandungan terperinci Tetapkan format perpuluhan langsung kepada JOptionPane.showInputDialog. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam