我有一个JTable。我的一个列中有JSpinner类。当用户点击它时,JSpiner的一个实例打开时带有JSpinnerDateModel。它有两个功能。一个可以使用Spinner上/下按钮来改变时间。一个可以通过输入来写时间。我正在使用am / pm 12小时格式。现在我希望在用户输入时,他无法删除冒号 使用backspace.WHile在冒号到达时使用退格键,光标向前移动一步。
公共类TimeEditor扩展了DefaultCellEditor {
private JSpinner timeSpinner;
SpinnerDateModel model;
JSpinner.DateEditor de;
TimeEditor(JFormattedTextField jf){
super(jf);
model = new SpinnerDateModel();
model.setCalendarField(Calendar.MINUTE);
timeSpinner = new JSpinner();
timeSpinner.setModel(model);
de= new JSpinner.DateEditor(timeSpinner, "hh:mm a");
timeSpinner.setEditor(new JSpinner.DateEditor(timeSpinner, "h:mm a"));
timeSpinner.setBorder(null);
}
我调用时间编辑器的代码是
` 字符串掩码=" **:*****&#34 ;; MaskFormatter timeFormatter; JFormattedTextField formattedField; public TestCalculator(){ 的initComponents(); 的getContentPane()的setBackground(Color.LIGHT_GRAY);
try{
timeFormatter = new MaskFormatter(mask);
timeFormatter.setPlaceholderCharacter(':');
formattedField = new JFormattedTextField(timeFormatter);
}
catch(ParseException e){
e.printStackTrace();
}