A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

API文档中提到:
calendarField 属性的值必须是在 Calendar 内指定某个字段的其中一个 java.util.Calendar 常量。getNextValue 和 getPreviousValue 方法将日期向前或向后更改这些量。例如,如果 calendarField 为 Calendar.DAY_OF_WEEK,则 nextValue 生成一个比当前 value 延后 24 小时的 Date,而 previousValue 则生成一个提前 24 小时的 Date。

为什么对calendarField的值进行修改后,上下按微调控制器都看不出变化呢?
只有调整鼠标所在位置,上下微调时会改变鼠标所在日历字段的值。
  1. import java.awt.BorderLayout;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import java.util.Calendar;
  5. import java.util.GregorianCalendar;

  6. import javax.swing.JButton;
  7. import javax.swing.JFrame;
  8. import javax.swing.JLabel;
  9. import javax.swing.JPanel;
  10. import javax.swing.JSpinner;
  11. import javax.swing.SpinnerDateModel;


  12. public class Demo{

  13.     public static void main(String[] args){
  14.             SpinnerTest spinner = new SpinnerTest();
  15.             spinner.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  16.             spinner.setVisible(true);
  17.     }
  18. }

  19. class SpinnerTest extends JFrame{
  20.         SpinnerTest(){
  21.                 setTitle( "SpinnerTest" );
  22.                 setSize( 400, 100 );
  23.                 JPanel buttonPanel = new JPanel();
  24.                 okButton = new JButton("OK");
  25.                 buttonPanel.add( okButton );
  26.                 add(buttonPanel, BorderLayout.SOUTH);
  27.                 mainPanel = new JPanel();
  28.                 add(mainPanel, BorderLayout.CENTER);
  29.                 //SpinnerDateModel(Date value, Comparable start, Comparable end, int calendarField)
  30.         //修改calendarField字段,微调控制器上下调整都看不出变化呢?
  31.                 JSpinner timeSpinner = new JSpinner(new SpinnerDateModel(
  32.                                 new GregorianCalendar(2000,Calendar.JANUARY,1,12,0,0)
  33.                                 .getTime(),null,null,Calendar.DAY_OF_WEEK));
  34.                 addRow("Time",timeSpinner);
  35.         }
  36.        
  37.         private void addRow(String labelText, final JSpinner spinner) {
  38.                 mainPanel.add(new JLabel(labelText));
  39.                 mainPanel.add(spinner);
  40.                 final JLabel valueLabel = new JLabel();
  41.                 mainPanel.add(valueLabel);
  42.                 okButton.addActionListener(new ActionListener(){
  43.                         public void actionPerformed(ActionEvent e){
  44.                                 Object value = spinner.getValue();
  45.                                 valueLabel.setText(value.toString());
  46.                         }
  47.                 });
  48.         }
  49.        
  50.         private JButton okButton;
  51.         private JPanel mainPanel;
  52. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马