PB.DNCSS
Do not call 'setSize()' in 'ComponentListener. componentResized()'
Description
This rule flags code that calls 'setSize()' inside of the 'componentResized()' method's body.
The "componentResized()" method gets called when the component's size changes. Invoking the "setSize()" method from within the "componentResized()" method can cause a non-ending sequence of resizing events:
- User resizes component.
- "componentResized()" gets invoked.
- "componentResized()" invokes "setSize()".
- "setSize()" posts a component resized event.
- "componentResized()" gets invoked.
- ...
Example
package PB;
import java.awt.*;
import java.awt.event.ComponentEvent;
public class DNCSS extends Component {
public void componentResized (ComponentEvent e) {
Dimension d = getSize();
setSize(d.width -10, d.height - 10);
// causes recursive calls.
}
}
Repair
Do not call the "setSize()" method inside of the "componentResized()" method's body.
|