首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java试图动态设置可调整帧大小(False)

Java试图动态设置可调整帧大小(False)
EN

Stack Overflow用户
提问于 2020-09-02 13:31:12
回答 2查看 47关注 0票数 0

我正在开发一个旧的java应用程序,并试图在需要时通过代码“动态”更改主框架的可调整大小属性。问题是,我有一个链接到这个帧的ComponentListener,当我禁用然后启用我的帧调整时,我就松开了ComponentListener。

下面是我用来做这件事的代码:

框架构造函数:

代码语言:javascript
复制
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); 

启用/禁用我的框架的可调整大小状态的

方法:

代码语言:javascript
复制
public void setResizableStatus(boolean isResizable) {
     this.removeComponentListener(compListener);
     this.setResizable(isResizable);
     if (isResizable)
     {
         this.addComponentListener(compListener);
     }        
     this.revalidate();
     this.repaint();
}

我的密码怎么了?

EN

回答 2

Stack Overflow用户

发布于 2020-09-02 14:02:38

简单:这里显示的代码是:

  • always删除listener
  • not总是重新添加侦听器

因此,解决办法应该是:

代码语言:javascript
复制
if (isResizable)
{
    this.addComponentListener(compListener);
}      

如果-条件。

票数 0
EN

Stack Overflow用户

发布于 2020-09-02 14:13:10

我已经像这样修改了代码:

代码语言:javascript
复制
public void setResizableStatus(boolean isResizable)
{
    this.removeComponentListener(compListener);
    this.setResizable(isResizable);

    this.addComponentListener(compListener);
    
    this.revalidate();
    this.repaint();
}

但结果是一样的,我失去了我的ComponentListener。我真的不知道为什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63706659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档