gpt4 book ai didi

java - Java中 "swap"一个组件的正确方法

转载 作者:搜寻专家 更新时间:2023-10-30 21:41:42 27 4
gpt4 key购买 nike

我试图做到这一点,以便当用户在我的 GUI 上单击某些内容时(无关紧要),一个 JTable 将消失,另一个 JComponent 将取而代之。

此时我正在使用以下代码,其中 contentPanel 是我设置为 JFrame 的内容 Pane 的 JPanel:

contentPanel.remove(table);
contentPanel.add(component, BorderLayout.CENTER);
contentPanel.updateUI();

效果很好,但我只想确认这是正确的方法。我的意思是,我想不出任何其他方法来实现它,但这并不一定意味着什么,如果有更好的方法,在性能或任何方面,我想知道它......

最佳答案

不,那不是这样做的方法。您永远不应该调用 updateUI()。阅读API,该方法仅在更改LAF 时使用。

添加/删除组件后你应该做的:

panel.add(...);
panel.revalidate();
panel.repaint(); // sometimes needed

(it's irrevelevant what), one JTable will disappear and another JComponent will replace it.

也许是相关的。通常一个JTable 显示在一个JScrollPane 中。所以也许更好的解决方案是使用:

scrollPane.setViewportView( anotherComponent );

然后滚动 Pane 将为您进行验证。

关于java - Java中 "swap"一个组件的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8608902/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com