Здравствуйте все, у меня проблема со спиннером. неужели никто не работал с джава спиннером? почему-то принтует по 2 значения (если нажать стрелку верх) и не принтует нужную дату, а если нажать стрелку вниз - тоже наормально не отрабатывает. все перепробовал - варианты закончились. Пож-та посоветуйте. Код | package timer1;
import java.awt.BorderLayout; import java.awt.Container; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ComponentEvent; import java.awt.event.ComponentListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.TimeZone; import java.util.Timer;
import javax.swing.Box; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JSeparator; import javax.swing.JSpinner; import javax.swing.SpinnerDateModel; import javax.swing.SpinnerModel; import javax.swing.SpinnerNumberModel; import javax.swing.SwingConstants; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener;
public class DateGeneraton { static JSpinner.DateEditor de1; static JSpinner s1; static JSpinner.DateEditor de2; static JSpinner s2; static JSpinner.DateEditor de3; static JSpinner s3; static JSpinner.DateEditor de4; static JSpinner s4; static JSpinner.DateEditor de5; static JSpinner s5; static JSpinner.DateEditor de6; static JSpinner s6; static int date; static int month1; static int year; static int hour; static int minute; static int second; private static JSeparator jSeparator1; public static void main(final String args[]) { final Calendar aGMTCalendar = Calendar.getInstance(TimeZone.getTimeZone("Tashkent")); Date today = aGMTCalendar.getTime(); JFrame frame = new JFrame("JSpinner Dates\\Time"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 250); Container c = frame.getContentPane(); c.setLayout(new GridLayout(0, 2)); //***************************************************************************************** c.add(new JLabel(" Date ")); s1 = new JSpinner((SpinnerModel) new SpinnerDateModel(today, null, null, Calendar.DATE)); c.add(s1); de1 = new JSpinner.DateEditor(s1, "dd"); s1.setEditor(de1); //***************************************************************************************** c.add(new JLabel(" Month ")); s2 = new JSpinner(new SpinnerDateModel(today, null, null, Calendar.MONTH)); c.add(s2); de2 = new JSpinner.DateEditor(s2, "MMMM"); s2.setEditor(de2); //***************************************************************************************** c.add(new JLabel(" Year ")); s3 = new JSpinner(new SpinnerDateModel(today, null, null, Calendar.YEAR)); c.add(s3); de3 = new JSpinner.DateEditor(s3, "yyyy"); s3.setEditor(de3); //***************************************************************************************** ChangeListener date_listener = new ChangeListener() { public void stateChanged(ChangeEvent e) { Calendar cal = de1.getFormat().getCalendar(); date = cal.get(Calendar.DATE); System.out.println(" Day " + date ); //DataVariablesStore.setDate(date); //DataVariablesStore.saying1(); } };
ChangeListener month_listener = new ChangeListener() { public void stateChanged(ChangeEvent e) { Calendar cal = de2.getFormat().getCalendar(); month1 = cal.get(Calendar.MONTH); System.out.println(" Month " + month1 ); DataVariablesStore.setMonth(month1); DataVariablesStore.saying2(); } }; ChangeListener year_listener = new ChangeListener() { public void stateChanged(ChangeEvent e) { Calendar cal = de3.getFormat().getCalendar(); year = cal.get(Calendar.YEAR); DataVariablesStore.setYear(year); System.out.println(" Year " + year ); //now need to convert value to int and pass it to schedule method - YEAR } }; s1.addChangeListener(date_listener); s2.addChangeListener(month_listener); s3.addChangeListener(year_listener); //************************************************************************************ c.add(new JSeparator(SwingConstants.HORIZONTAL)); c.setLayout(new GridLayout(0, 2)); c.add(new JSeparator(SwingConstants.HORIZONTAL)); c.add(new JLabel(" Hour ")); s4 = new JSpinner(new SpinnerDateModel(today, null, null, Calendar.HOUR_OF_DAY)); c.add(s4); de4 = new JSpinner.DateEditor(s4, "HH"); s4.setEditor(de4); c.add(new JLabel(" Minute ")); s5 = new JSpinner(new SpinnerDateModel(today, null, null, Calendar.MINUTE)); c.add(s5); de5 = new JSpinner.DateEditor(s5, "mm"); s5.setEditor(de5); c.add(new JLabel(" Second ")); s6 = new JSpinner(new SpinnerDateModel(today, null, null, Calendar.SECOND)); c.add(s6); de6 = new JSpinner.DateEditor(s6, "ss"); s6.setEditor(de6); ChangeListener hour_listener = new ChangeListener() { public void stateChanged(ChangeEvent e) { Calendar cal = de4.getFormat().getCalendar(); hour = cal.get(Calendar.HOUR_OF_DAY); DataVariablesStore.setHour(hour); System.out.println(" Hour " + hour ); DataVariablesStore.saying3();
} }; ChangeListener minute_listener = new ChangeListener() { public void stateChanged(ChangeEvent e) { Calendar cal = de5.getFormat().getCalendar(); minute = cal.get(Calendar.MINUTE); DataVariablesStore.setMinute(minute); System.out.println(" Minute " + minute ); } }; ChangeListener second_listener = new ChangeListener() { public void stateChanged(ChangeEvent e) { Calendar cal = de6.getFormat().getCalendar(); second = cal.get(Calendar.SECOND); DataVariablesStore.setSecond(second); System.out.println(" Second " + second ); } }; s4.addChangeListener(hour_listener); s5.addChangeListener(minute_listener); s6.addChangeListener(second_listener); c.add(new JSeparator(SwingConstants.HORIZONTAL)); c.add(new JSeparator(SwingConstants.HORIZONTAL)); c.setLayout(new GridLayout(0,2)); JButton b1 = new JButton("submit"); b1.setSize(5, 10); c.add(b1); b1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("R0 " + DataVariablesStore.getYear() + " -- " + DataVariablesStore.getMonth() + " -- " + DataVariablesStore.getDate() + " -- " + DataVariablesStore.getHour() + " -- " + DataVariablesStore.getMinute() + " -- " + DataVariablesStore.getSecond()); Checker ch = new Checker(); Timer timer = new Timer(); // start the timer thread Calendar cal = new GregorianCalendar(); //cal.set(2012, 4, 24, 15, 47, 00); cal.set(DataVariablesStore.getYear(), DataVariablesStore.getMonth(), DataVariablesStore.getDate(), DataVariablesStore.getHour(), DataVariablesStore.getMinute(), DataVariablesStore.getSecond()); Date date = cal.getTime(); timer.schedule(ch, date); } }); frame.setLocationRelativeTo(null); frame.setVisible(true);
} //*************************************************** }
|
С уважением!
|