编辑JSpinner的默认textEditor

时间:2016-02-13 20:56:21

标签: java swing jtextfield

我有一个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();
      }

0 个答案:

没有答案