2009-06-14 5 views
0

JSpinnerを拡張して、dd/mm/yyy値を反復する次のクラスを作成しました。カスタムJSpinner


public class DateSpinner extends JSpinner{ 

    Calendar calendar = new GregorianCalendar(); 

    public DateSpinner(){ 
    super(); 

    calendar.add(Calendar.DAY_OF_YEAR, 1); 
    Date now = calendar.getTime(); 

    calendar.add(Calendar.DAY_OF_YEAR, -2); 
    Date startDate = calendar.getTime(); 

    calendar.add(Calendar.YEAR, 100); 
    Date endDate = calendar.getTime(); 

    SpinnerDateModel dateModel = new SpinnerDateModel 
     (now , startDate , endDate , Calendar.DAY_OF_MONTH); 

    setModel(dateModel); 

    JFormattedTextField tf = 
     ((JSpinner.DefaultEditor)getEditor()).getTextField(); 
    DefaultFormatterFactory factory = 
     (DefaultFormatterFactory)tf.getFormatterFactory(); 
    DateFormatter formatter = (DateFormatter)factory.getDefaultFormatter(); 

    // Change the date format to only show the hours 
    formatter.setFormat(new SimpleDateFormat("dd/MM/yyyy")); 
    } 




} 

私の問題は、私は一週間の時間と日を含む日付を取得

Date today = new Date(); 
    spinner.setValue(today); 

使用してその値を設定した場合です。私がスピナーに触れると、設定したフォーマットに従ってフォーマットされます。最初に表示したいフォーマットを最初に取得するにはどうすればよいですか?あなたは私がJoda Timeを使用して検討するカレンダー、日付と時刻を扱う時はいつでも - ビルトインなサイドノートとして、また

spinner.setEditor(new JSpinner.DateEditor(spinner, "dd/MM/yyyy")); 

答えて

2

使用。

1

を次のように編集者、

+0

Java8 APIを使用している場合は、 'LocalDate'クラスと' LocalDateTime'クラスを使用できます。 –

関連する問題