now = Calendar.getInstance();        final Calendar yestoday = Calendar.getInstance();
        yestoday.set(Calendar.HOUR_OF_DAY, now.get(Calendar.HOUR_OF_DAY)-23);        final Calendar tomorrow = Calendar.getInstance();
        tomorrow.set(Calendar.HOUR_OF_DAY, now.get(Calendar.HOUR_OF_DAY)+23);        final SpinnerDateModel model=new SpinnerDateModel(
                            now.getTime(),
                            yestoday.getTime(),
                            tomorrow.getTime(),
                            Calendar.DAY_OF_MONTH);
        //model building end
       JSpinner spinner = new JSpinner(model);        final String foramtPattern = "yyyy-MM-dd HH:mm:ss ";   //在这里设置你的格式
        final JSpinner.DateEditor editor = new JSpinner.DateEditor(spinner,foramtPattern);
        spinner.setEditor(editor);
我上面已经可以显示系统时间 但是不会随系统时间改变怎么样才能实现系统时间的改变?

解决方案 »

  1.   

    import javax.swing.*; 
    import java.awt.*; 
    import java.util.*; 
    import java.text.*; public class tt extends JFrame { 
      private JLabel tipLabel;   private JTextField timeText;   private Container container;   public tt() { 
        container = getContentPane(); 
        container.setLayout(new FlowLayout()); 
        tipLabel = new JLabel("当前时间:"); 
        timeText = new JTextField(25); 
        timeText.setEditable(false); 
        container.add(tipLabel); 
        container.add(timeText); 
        Thread thread = new Display(timeText); 
        thread.start(); 
        pack();// 自动调整窗体大小 
        setVisible(true); 
        setSize(250, 100); 
      }   public static void main(String[] args) { 
        tt newTime = new tt(); 
        newTime.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      } 
    } class Display extends Thread { 
      private JTextField timeField;   Display(JTextField field) { 
        timeField = field; 
      }   DateFormat df = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.CHINA); 
      { 
        df.setTimeZone(TimeZone.getTimeZone("GMT+8")); 
      }   public void run() { 
        while (true) { 
          Date date = new Date(); 
          timeField.setText(df.format(date)); 
          try { 
            Thread.sleep(1000); 
          } catch (Exception e) { 
            e.printStackTrace(); 
          } 
        } 
      } 
    }
      

  2.   

    我做出来了,就是开始先获取系统时间 然后设定一个每秒触发一次的计时器,让代表秒的那个spinner不断加一,再在里面设定什么时候其他两个加一,就可以显示一个简单的钟表了 具体代码等我作业弄完了就上传,希望以后大家多多交流 谢谢个位啊