【发布时间】:2015-08-02 07:07:15
【问题描述】:
我有带有 2 个 jpanels 的 jframe。我在第一个 jpanel 上有一些组件,在第二个上有按钮。当我单击第一个面板上的 jbuton(调用方法 removeAll)时,它会删除该 jpanel 中的所有组件(我调用方法 revalidate()、repaint()),然后我显示带有组件的第二个面板。长话短说,我删除第一个 jpanel 显示第二个,第二个显示在 jframe 上,... 在 jpanel 之间切换工作正常,当我切换回第一个 jpanel 光标手型时按钮不显示,而是出现正常光标。手形光标类型的工作第一次很好,但是当我切换回第一个 jpanel 时,它又恢复为默认值...
按钮的实现:
button = new JButton(icon);
button.setText("OK");
button.setHorizontalTextPosition(SwingConstants.LEFT);
button.setFocusPainted(false);
button.setCursor(new Cursor(Cursor.HAND_CURSOR));
当我切换到第二个 jpanel 然后回到第一个 jpanel 时,按钮上的光标当然不会出现(“手形光标”)。
当我在框架上的 jpanels 之间切换时,我希望该按钮保持手型光标...
【问题讨论】:
-
@dic19 听起来很丑陋。
-
我不确定您是否需要 MouseListener。请写一个minimal example program,我们可以对其进行测试和修改,以向我们显示您的问题。请注意,如果这是我的程序,我只需使用 CardLayout 交换 JPanel。
-
我将鼠标监听器应用到按钮,但它没有将光标设置为手型...
-
你能给我一些很好的例子,如何实现卡片布局以在 jpanel 之间切换吗?我正在使用 MigLayout ...
-
我想当我通过删除组件在 jpanel 之间切换时会发生一些奇怪的事情......我认为我通过删除组件在 jpanel 之间切换的方法是不正确的......