0

フロートにa を使用するJFormattedTextFieldと、ドットの後の部分が見えません。たとえば、3.14 と入力すると、書式設定されたテキスト フィールドはこれを 3 に置き換えますか?

JFormattedTextField aR = new JFormattedTextField(new Float(0.00));

aR.addPropertyChangeListener("value", new PropertyChangeListener() {        
    @Override
    public void propertyChange(PropertyChangeEvent evt) {
        System.out.println(evt.getNewValue());      
    }
}); 
4

2 に答える 2

3
  • に配置された小数点以下の桁数を設定する必要がありますNumberFormatDecimalNumberFormat

. 例えば

    FormattedTextField.setFormatterFactory(new AbstractFormatterFactory() {

        @Override
        public AbstractFormatter getFormatter(JFormattedTextField tf) {
            NumberFormat format = DecimalFormat.getInstance();
            format.setMinimumFractionDigits(2);
            format.setMaximumFractionDigits(2);
            format.setRoundingMode(RoundingMode.HALF_UP);
            InternationalFormatter formatter = new InternationalFormatter(format);
            formatter.setAllowsInvalid(false);
            formatter.setMinimum(0.0);
            formatter.setMaximum(1000.00);
            return formatter;
        }
    });
  • DocumentListenerforJTextComponentの代わりに sを使用する可能性がPropertyChangeListenerあります。すべての変更をリッスンするか、最終結果のみが重要かによって異なります。
于 2013-11-06T20:46:13.973 に答える