gpt4 book ai didi

java - JPanel 不可见

转载 作者:行者123 更新时间:2023-12-01 23:28:37 25 4
gpt4 key购买 nike

我正在尝试使用 JMenuItem 删除和添加我需要的面板。然而,当我使用 Action 监听器并告诉它添加面板时,什么也没有发生。

PanelMaker newPanel = new Panel(); //I have my panel in another class and I use this to call it
item.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
add(newPanel.pane());//I try to add the panel here, but nothing occurs
}
});

最佳答案

您需要重新验证并重新绘制添加或删除组件的容器。即,

@Override
public void actionPerformed(ActionEvent e) {
add(newPanel.pane());//I try to add the panel here, but nothing occurs
revalidate(); // tells the layout managers to re-layout components
repaint(); // requests that the repaint manager repaint the container
}

revalidate()的调用告诉容器的布局管理器重新布局它所持有的所有组件,同样会导致所有包含的容器的级联重新布局。

repaint()的调用再次建议重绘管理器重绘容器及其所有子容器。这一点很重要,特别是如果组件被删除或者组件移动到之前看到另一个组件的位置的顶部,以清理旧的渲染。

同样非常重要的是容器使用的布局管理器。有些人不容易接受新组件——在这方面,我立即想到 GroupLayout。

关于java - JPanel 不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19649392/

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