如何在Java中刷新GUI?

我有一个与Java相关的一般问题。

我正在编写一个具有GUI菜单的应用程序。 我试图根据单选按钮的选择更改GUI菜单的一部分。

我需要:

  1. 重绘整个窗口或只更新该部分:

    setVisible(true)? 
  2. 如果我只使用上面#1中的语句… GUI很好 – 直到我将鼠标移到它上面然后我看到前一个按钮选择。 我究竟做错了什么?

Swing组件有一个repaint(),revalidate()和doLayout()方法。 其中一个应该能够重绘你想要的任何一块。 但是,doLayout不是你应该承担的责任,这是布局引擎的责任。

您可能还想看看这篇文章 ,第一个回复有一个很好的解释,并链接到一篇文章更详细。

就你问题的第二部分而言,我不确定,但我们可能需要看一些代码来获得一个想法。 实际上是否从视图中删除了“替换区域”?

..在我的应用程序中,用户选择他们想要进行顶级测试的设备平台类型(该选项是左侧的一组两个单选按钮)。 当用户选择Android或iOS时,复选框的中心分组会更改以反映他们可以测试的一组Android设备或他们可以测试的一组iOS设备。

  1. 将面板放在“中心分组”中。
  2. 使用CardLayout作为面板。
  3. 使用卡片布局将iOS和Android控件添加到面板。
  4. 根据需要在它们之间翻转。

在顶级组件上调用revalidate()