01: import java.awt.*;
02: import java.beans.*;
03: import java.util.*;
04: 
05: /**
06:    A property editor for the Dimension type that presents
07:    a dimension as a text "width x height".
08: */
09: public class DimensionEditor extends PropertyEditorSupport
10: {
11:    public String getAsText()
12:    {
13:       Dimension value = (Dimension) getValue();
14:       return (int) value.getWidth() 
15:          + "x" + (int) value.getHeight();
16:    }
17: 
18:    public void setAsText(String s)
19:    {
20:       try
21:       {
22:          StringTokenizer tokenizer 
23:             = new StringTokenizer(s, "x");
24:          if (!tokenizer.hasMoreTokens()) 
25:             throw new IllegalArgumentException();
26:          int width 
27:             = Integer.parseInt(tokenizer.nextToken().trim());
28:          if (!tokenizer.hasMoreTokens()) 
29:             throw new IllegalArgumentException();
30:          int height
31:             = Integer.parseInt(tokenizer.nextToken().trim());
32:          setValue(new Dimension(width, height));
33:       }
34:       catch (NumberFormatException exception)
35:       {
36:          throw new IllegalArgumentException();
37:       }
38:    }
39: }