public DiagramCanvas() { setName("diagram"); diagramChangeHandler = new DiagramChangeHandler(); addComponentListener(new ComponentAdapter() { /** * Invoked when the component's size changes. */ @Override public void componentResized(ComponentEvent e) { if (diagram != null) { diagram.invalidate(); } } }); MouseInputAdapter mouseHandler = new IndicatorHandler(); addMouseListener(mouseHandler); addMouseMotionListener(mouseHandler); setPreferredSize(new Dimension(320, 200)); }