In een applicatie die ik gemaakt heb kan via een JSpinner component, met een SpinnerNumberModel als model, een aantal minuten worden ingevoerd. Nu zou het echter handig zijn als in dit JSpinner component het aantal minuten ook in uu:mm formaat in zou kunnen worden gevoerd. Natuurlijk is dit slechts representatie: het ding moet wel een aantal minuten (uu*60+mm) blijven geven als resultaat van getValue().
Nu is mijn vraag: wat is de Goede Manier is om dit te bereiken. Het geheel van de JSpinner met het SpinnerModel, het interne JSpinner.[iets]Editor component met daarin een JFormattedTextField, met daar weer Formatters en Formatterfactories is voor mij een paar stappen te complex om helder te kunnen overzien hoe dit geheel werkt. Met name de manier waarop ik zelf een Formatter en/of een FormatterFactory zou moeten maken om dit te bereiken is me enigszins onduidelijk (ligt aan mij of aan de API?). Ik ben geneigd een PropertyChangeEvent van de value van het element af te vangen en de string van het textfield ad hoc te veranderen, maar mijn gevoel zegt me dat dat niet de Goede Manier is (bovendien moet ik dan toch al rommelen in het Model van de JSpinner, wat ook al niet zo prettig is, aangezien ik uiteindelijk met integers wil werken en het puur representatie is dat het probleem is).
Kan iemand met verstand van dit soort Design Patterns een hint geven waar ik het beste in kan grijpen en indien dat het zelf schrijven van een Formatter / FormatterFactory is: welke methoden moet ik dan overriden?
Nu is mijn vraag: wat is de Goede Manier is om dit te bereiken. Het geheel van de JSpinner met het SpinnerModel, het interne JSpinner.[iets]Editor component met daarin een JFormattedTextField, met daar weer Formatters en Formatterfactories is voor mij een paar stappen te complex om helder te kunnen overzien hoe dit geheel werkt. Met name de manier waarop ik zelf een Formatter en/of een FormatterFactory zou moeten maken om dit te bereiken is me enigszins onduidelijk (ligt aan mij of aan de API?). Ik ben geneigd een PropertyChangeEvent van de value van het element af te vangen en de string van het textfield ad hoc te veranderen, maar mijn gevoel zegt me dat dat niet de Goede Manier is (bovendien moet ik dan toch al rommelen in het Model van de JSpinner, wat ook al niet zo prettig is, aangezien ik uiteindelijk met integers wil werken en het puur representatie is dat het probleem is).
Kan iemand met verstand van dit soort Design Patterns een hint geven waar ik het beste in kan grijpen en indien dat het zelf schrijven van een Formatter / FormatterFactory is: welke methoden moet ik dan overriden?
Wie trösten wir uns, die Mörder aller Mörder?