我有一个与Java相关的一般问题。
我正在编写一个具有GUI菜单的应用程序。我正在尝试根据单选按钮的选择更改GUI菜单的一部分。
我需要:
重绘整个窗口或只使用以下内容更新该部分:
setVisible(true)?
如果我只使用上面#1中的语句..GUI就可以了 - 直到我将鼠标移到它上面然后我看到上一个按钮选项。我做错了什么?
答案 0 :(得分:6)
Swing组件有一个repaint(),revalidate()和doLayout()方法。其中一个应该能够重绘你想要的任何一块。但是,doLayout不是你应该承担的责任,这是布局引擎的责任。
您可能还想查看this post,第一个回复有一个很好的解释,并链接到更详细的文章。
就问题的第二部分而言,我不确定,但我们可能需要查看一些代码才能获得一个想法。实际上是否从视图中删除了“替换区域”?
答案 1 :(得分:4)
..在我的应用程序中,用户选择他们想要进行顶级测试的设备平台类型(该选项是左侧的一组两个单选按钮)。当用户选择Android或iOS时,复选框的中心分组会更改以反映他们可以测试的一组Android设备或他们可以测试的一组iOS设备。
CardLayout
作为面板。 答案 2 :(得分:0)
在顶级组件上调用revalidate()
。