SpinnerModel, was mach ich falsch?

Status
Nicht offen für weitere Antworten.

SebiB90

Top Contributor
ich hab ein SpinnerModel geschrieben für wochen, also da steht dann z.b. "31.05.2005 - 05.06.2005" und mit den buttons soll man eine woche früher und später umschalten können, aber das funktioniert nicht. der startwert wird angezeigt aber wenn ich auf ein button klicke passiert nichts. wieso?
hier das model:
Code:
package school.gui;

import java.util.Calendar;

import javax.swing.*;
import javax.swing.event.ChangeListener;
import java.text.SimpleDateFormat;
import java.text.ParseException;

public class WeekSpinnerModel implements SpinnerModel{
  private Calendar week;
  private SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
  
  public WeekSpinnerModel(Calendar week) {
    this.week = week;
  }
  
  public Object getValue() {
    System.out.println("get");
    StringBuffer sb = new StringBuffer();
    Calendar cal = (Calendar) week.clone();
    week.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
    sb.append(format.format(cal.getTime()));
    sb.append(" - ");
    cal.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);
    sb.append(format.format(cal.getTime()));
    return sb.toString();
  }

  public void setValue(Object value) {
    if(value instanceof String) {
      String strDate = ((String) value).substring(0,10);
      try {
        this.week.setTime(format.parse(strDate));
      }catch(ParseException e) {
        e.printStackTrace();
      }
    }
  }

  public Object getNextValue() {
    StringBuffer sb = new StringBuffer();
    Calendar cal = (Calendar) week.clone();
    cal.roll(Calendar.WEEK_OF_YEAR,true);
    cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
    sb.append(format.format(cal.getTime()));
    sb.append(" - ");
    cal.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);
    sb.append(format.format(cal.getTime()));
    return sb.toString();
  }

  public Object getPreviousValue() {
    StringBuffer sb = new StringBuffer();
    Calendar cal = (Calendar) week.clone();
    cal.roll(Calendar.WEEK_OF_YEAR,false);
    cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
    sb.append(format.format(cal.getTime()));
    sb.append(" - ");
    cal.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);
    sb.append(format.format(cal.getTime()));
    return sb.toString();

  }

  public void addChangeListener(ChangeListener l) {
  }

  public void removeChangeListener(ChangeListener l) {
  }
}

EDIT:
hab den fehler gefunden. es lag daran das ich die ChangeListener nicht irgendwo gespeichert habe und die benachrichtigt habe wenn setValue() aufgerufen wird.
Code:
package school.gui;

import java.util.Calendar;
import java.util.Vector;

import javax.swing.*;
import javax.swing.event.*;
import java.text.SimpleDateFormat;
import java.text.ParseException;

public class WeekSpinnerModel implements SpinnerModel{
  private Vector<ChangeListener> listeners;
  private Calendar week;
  private SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
  
  public WeekSpinnerModel(Calendar week) {
    this.listeners = new Vector<ChangeListener>();
    this.week = week;
  }
  
  public Object getValue() {
    System.out.println("get");
    StringBuffer sb = new StringBuffer();
    Calendar cal = (Calendar) week.clone();
    week.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
    sb.append(format.format(cal.getTime()));
    sb.append(" - ");
    cal.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);
    sb.append(format.format(cal.getTime()));
    return sb.toString();
  }

  public void setValue(Object value) {
    if(value instanceof String) {
      String strDate = ((String) value).substring(0,10);
      try {
        this.week.setTime(format.parse(strDate));
        this.fireChangeEvent();
      }catch(ParseException e) {
        e.printStackTrace();
      }
    }
  }
  
  private void fireChangeEvent() {
    for(ChangeListener l : this.listeners) {
      l.stateChanged(new ChangeEvent(this));
    }
  }

  public Object getNextValue() {
    StringBuffer sb = new StringBuffer();
    Calendar cal = (Calendar) week.clone();
    cal.roll(Calendar.WEEK_OF_YEAR,true);
    cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
    sb.append(format.format(cal.getTime()));
    sb.append(" - ");
    cal.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);
    sb.append(format.format(cal.getTime()));
    return sb.toString();
  }

  public Object getPreviousValue() {
    StringBuffer sb = new StringBuffer();
    Calendar cal = (Calendar) week.clone();
    cal.roll(Calendar.WEEK_OF_YEAR,false);
    cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
    sb.append(format.format(cal.getTime()));
    sb.append(" - ");
    cal.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);
    sb.append(format.format(cal.getTime()));
    return sb.toString();
  }

  public void addChangeListener(ChangeListener l) {
    this.listeners.add(l);
  }

  public void removeChangeListener(ChangeListener l) {
    this.listeners.remove(l);
  }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Probleme mit SpinnerModel: SpinnerDateModel AWT, Swing, JavaFX & SWT 7
W Swing Farbige JPanels auf JFrame werden nicht gezeigt. Was mach ich falsch? AWT, Swing, JavaFX & SWT 7
J Scheinbar blockiert Swing bei JTree, was mach ich falsch? AWT, Swing, JavaFX & SWT 7
A jtable + jLabel - was mach ich falsch? AWT, Swing, JavaFX & SWT 2
hdi Wie mach ich diesen MouseListener AWT, Swing, JavaFX & SWT 4
V Was mach ich falsch bei TappedPane AWT, Swing, JavaFX & SWT 4
V Was mach ich falsch ? AWT, Swing, JavaFX & SWT 2
W JTree - aus zwei mach eins AWT, Swing, JavaFX & SWT 2
G Screen nach Auswahl schließen und neuen öffnen?wie mach ichs AWT, Swing, JavaFX & SWT 8
U Bild in JEditorPane oder Aus "" mach' "/&quot AWT, Swing, JavaFX & SWT 2
G Button auswerten und ausgeben ob richtig oder falsch AWT, Swing, JavaFX & SWT 1
J Komponente wird manchmal falsch gezeichnet AWT, Swing, JavaFX & SWT 0
A Eclipse Windowbuilder Frameanzeige falsch AWT, Swing, JavaFX & SWT 3
ralfb1105 Swing Wert in JTextField wird falsch ausgegeben AWT, Swing, JavaFX & SWT 2
R AWT Ich verstehe die Fehlermeldung nicht. Was habe ich falsch gemacht? AWT, Swing, JavaFX & SWT 85
DaCrazyJavaExpert Swing Komponenten in GridBagLayout werden Falsch angeordnet AWT, Swing, JavaFX & SWT 1
M Swing Inhalt meines JTables wird falsch dargestellt AWT, Swing, JavaFX & SWT 8
L Charset beim Drucken falsch AWT, Swing, JavaFX & SWT 2
C JavaFX Application -Icon wird falsch dargestellt AWT, Swing, JavaFX & SWT 7
K Swing Selectedrows falsch nach Sortieren AWT, Swing, JavaFX & SWT 1
B Swing Zähler im Hintergrund falsch berechnet - Warum? AWT, Swing, JavaFX & SWT 3
J JTable wird bei scrollen falsch gezeichnet AWT, Swing, JavaFX & SWT 3
J SWT Rechteck Füllfarbe wird bei Action falsch gefüll AWT, Swing, JavaFX & SWT 2
F Swing BoxLayout ein JTextfield wird falsch positioniert AWT, Swing, JavaFX & SWT 2
S Swing Spiel Richtig/Falsch implementieren AWT, Swing, JavaFX & SWT 5
J Swing Cursor von Child falsch, wenn Parant disabled AWT, Swing, JavaFX & SWT 2
M was mache ich falsch? AWT, Swing, JavaFX & SWT 5
H Swing ListCellRenderer einer JList zeichnet sporadisch falsch AWT, Swing, JavaFX & SWT 6
H Swing Eigene Komponente reagiert falsch auf mouseClicked() AWT, Swing, JavaFX & SWT 5
L Einfache Layout Frage für Applet -> Was mache ich bloss falsch? AWT, Swing, JavaFX & SWT 2
T Swing JMenu falsch positioniert AWT, Swing, JavaFX & SWT 2
data89 Was mache ich mit "Dispatched Event Thread"/Substance falsch? AWT, Swing, JavaFX & SWT 4
D Comboboxen werte Falsch. AWT, Swing, JavaFX & SWT 2
S JTable Bug - eingegebene Daten werden falsch geparst :( AWT, Swing, JavaFX & SWT 4
S JComboBox wird nach removeAll falsch dargestellt AWT, Swing, JavaFX & SWT 2
hdi panel hintergrundbild falsch implementiert ? AWT, Swing, JavaFX & SWT 9
G JTable mit JComboBox als Celleditor, selectedRow falsch! AWT, Swing, JavaFX & SWT 3
Steev Icon wird nicht geladen, was ist falsch? AWT, Swing, JavaFX & SWT 4
N TappedPanel falsch angezeigt AWT, Swing, JavaFX & SWT 6
M pack() awt funktioniert falsch AWT, Swing, JavaFX & SWT 3
N AbstactTabe + JTable --Was ist falsch? AWT, Swing, JavaFX & SWT 4
ShapeShifter GridBagLayout was mache ich falsch? AWT, Swing, JavaFX & SWT 3
K Linie wird falsch auf Panel gezeichnet AWT, Swing, JavaFX & SWT 11

Ähnliche Java Themen

Neue Themen


Oben