此示例可用于说明@kleopatra引用的违规行为.在调整组件大小时,事件调度机制可以帮助您调用repaint().如果你改变你正在渲染的状态,比如在paintComponent()中,你会看到它快速循环.在下面的示例中,底部行在调整大小时闪烁,而顶行保持不变.
附录:AnimationTest是一个相关示例,它利用此效果在ComponentAdapter中执行动画.
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/** @https://stackoverflow.com/questions/7735774 */
public class ResizeMe extends JPanel {
private static final int N = 4;
private static final int SIZE = 100;
private sta