使用JFormattedText或JTextField元素验证浮点数的最佳方法是什么?
我不想通过诸如keypress或keydown之类的事件进行验证,是否有一些JFormattedText方法?
a的语义JFormattedTextField
有些奇怪,但是它们可能对您有用。诀窍是将格式化文本字段的值设置为可用作格式化程序的对象。浮动效果很好。
JFormattedTextField jff = new JFormattedTextField( 0.0f );
JFormattedTextFields不会阻止用户输入错误的输入。如果用户输入错误的数据,它们只会恢复为旧的(正确的)值。如果您想要不同的行为,则可能必须执行按键操作,有时这是唯一的方法。
public class Validation
{
public static void main( String[] args )
{
SwingUtilities.invokeLater( new Runnable()
{
public void run()
{
JFrame frame = new JFrame();
Box vbox = Box.createVerticalBox();
JFormattedTextField jff = new JFormattedTextField( 0.0f );
vbox.add(jff);
JTextField jt = new JTextField( 20 );
vbox.add( jt );
JLabel value = new JLabel( jff.getValue().toString() );
vbox.add( value );
frame.add( vbox );
JButton b = new JButton( "Get Value" );
b.addActionListener( new ActionListener()
{
@Override
public void actionPerformed( ActionEvent e )
{
value.setText( jff.getValue().toString() );
}
} );
JPanel p = new JPanel();
p.add( b );
frame.add( p, BorderLayout.SOUTH );
frame.pack();
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setLocationRelativeTo( null );
frame.setVisible( true );
}
} );
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句