0
使用JFormattedText或JTextField元素驗證浮點數的最佳方法是什麼?如何僅使用Java Swing驗證JFormattedText中的浮點數?
我不想驗證低谷事件像按鍵或的keydown,有一些JFormattedText方法?
使用JFormattedText或JTextField元素驗證浮點數的最佳方法是什麼?如何僅使用Java Swing驗證JFormattedText中的浮點數?
我不想驗證低谷事件像按鍵或的keydown,有一些JFormattedText方法?
一個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);
}
});
}
}