请高手帮我分析一下,下面这段程序为什么会进入死循环?
mainPanel.addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent e) {
Dimension d = mainPanel.getPreferredSize();
if (d.width < 200) {
mainPanel.setSize(200, d.height);
}
if (d.height < 400) {
mainPanel.setSize(d.width, 400);
}
}
});
mainPanel.addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent e) {
Dimension d = mainPanel.getPreferredSize();
if (d.width < 200) {
mainPanel.setSize(200, d.height);
}
if (d.height < 400) {
mainPanel.setSize(d.width, 400);
}
}
});
而componentResized又会调整大小
那肯定会产生死循环
而componentResized又会调整大小
那肯定会产生死循环
而componentResized又会调整大小
那肯定会产生死循环
无限循环下去了?!
无限循环下去了?!
无限循环下去了?!
if (d.width < 200) {
mainPanel.setSize(200, d.height);
}
if (d.height < 400) {
如果d.width>200&&d.height>400呢?
Dimension d = mainPanel.getPreferredSize(); mainPanel.setSize(d.width, 400);
很多情况下:
preferredSize<<size