Reputation: 57192
I have a JFormattedTextField
that I use to restrict entries of a date and time. I want to use a MaskFormatter
though to show the placeholder chars. Is there a way to use a MaskFormatter
on top of the JFormattedTextField
when the text field is already using a SimpleDateFormat
?
Thanks, Jeff
Upvotes: 12
Views: 34860
Reputation: 205785
Alternatively, consider anInputVerifier
, as suggested in InputVerificationDemo
and this more elaborate example.
Upvotes: 2
Reputation: 27326
public class MaskFormatterTest {
private static final DateFormat df = new SimpleDateFormat("yyyy/mm/dd");
public static void main(String[] args) {
JFrame frame = new JFrame("");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
JFormattedTextField tf = new JFormattedTextField(df);
tf.setColumns(20);
panel.add(tf);
try {
MaskFormatter dateMask = new MaskFormatter("####/##/##");
dateMask.install(tf);
} catch (ParseException ex) {
Logger.getLogger(MaskFormatterTest.class.getName()).log(Level.SEVERE, null, ex);
}
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
}
Unless I'm misunderstanding the question.
Upvotes: 32
Reputation: 12349
JFormattedTextField tft3 =
new JFormattedTextField(new SimpleDateFormat("yyyy-MM-dd"));
tft3.setValue(new Date());
Date date = (Date) tft3.getValue();
Upvotes: -2