代码之家  ›  专栏  ›  技术社区  ›  lbedogni

Java面板上的坏事件

  •  2
  • lbedogni  · 技术社区  · 16 年前

    我有一个Java面板,有4个按钮。当我单击这些按钮时,会出现一个新框架,第一个框架用 setVisibile(false) . 在那个新窗口中,我有另一个按钮,但是当我单击它时,我得到了与第一个窗口的第四个按钮相对应的事件。再按一下按钮就可以了,但这当然是不可接受的。 我错过什么了吗?我只是用

    nameOfTheFrame.setVisible(true);
    

    每一个按钮上都有鼠标听筒。

    最后一个按钮的代码是:

    System.exit(0);
    

    编辑

    样例代码:

        private void btn_joinGamePressed(java.awt.event.MouseEvent evt) {
                GraphicsTools.getInstance().getCreateGame().setVisible(false);
                GraphicsTools.getInstance().getMainPanel().setVisible(false);
                GraphicsTools.getInstance().getRegistration().setVisible(true);
    }
    

    graphictools是单例的。

    编辑2 更多信息。 我注意到在Mac操作系统上工作正常。这个问题只在Linux和Windows上发生。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Ravindra Gullapalli    16 年前

    这一定是因为你的鼠标监听器。可能是它在你第一次点击的时候识别了旧的按钮,在新按钮的相同位置(这只是我的猜测)。

    将鼠标监听器更改为动作监听器。对于按钮来说,如果您有动作监听器就足够了。

    试试这个。

        2
  •  0
  •   Gordon    16 年前

    尝试呼叫 revalidate() 当你改变它们的生存能力时。

    编辑:

    这可能是框架的创造。确保在帧上调用“pack()”。