我正在开发一个旧的java应用程序,并试图在需要时通过代码“动态”更改主框架的可调整大小属性。问题是,我有一个链接到这个帧的ComponentListener,当我禁用然后启用我的帧调整时,我就松开了ComponentListener。
下面是我用来做这件事的代码:
框架构造函数:
compListener = new ComponentListener() {
public void componentShown(ComponentEvent arg0) {}
public void componentResized(ComponentEvent arg0) {
ScreenManager.windowResized(arg0.getComponent().getSize());
}
public void componentMoved(ComponentEvent arg0) {}
public void componentHidden(ComponentEvent arg0) {}
};
addComponentListener(compListener); 启用/禁用我的框架的可调整大小状态的
方法:
public void setResizableStatus(boolean isResizable) {
this.removeComponentListener(compListener);
this.setResizable(isResizable);
if (isResizable)
{
this.addComponentListener(compListener);
}
this.revalidate();
this.repaint();
}我的密码怎么了?
发布于 2020-09-02 14:02:38
简单:这里显示的代码是:
。
因此,解决办法应该是:
if (isResizable)
{
this.addComponentListener(compListener);
} 如果-条件。
发布于 2020-09-02 14:13:10
我已经像这样修改了代码:
public void setResizableStatus(boolean isResizable)
{
this.removeComponentListener(compListener);
this.setResizable(isResizable);
this.addComponentListener(compListener);
this.revalidate();
this.repaint();
}但结果是一样的,我失去了我的ComponentListener。我真的不知道为什么。
https://stackoverflow.com/questions/63706659
复制相似问题