java - Panel.repaint() 似乎没有刷新面板

标签 java swing jpanel repaint

我在使用默认值重新绘制 GUI 上的 JPanel 时遇到了一些问题。

下面是我现在使用的代码,再一次,我不习惯,也不太了解java代码,所以请原谅我犯的菜鸟错误:

private void btnResetActionPerformed(java.awt.event.ActionEvent evt) {                                         
    ...

    pnlWagens1 = new pnlWagens();
    UpdateGUI();
}                                        

private void UpdateGUI(){
    pnlWagens1.repaint();
}

到目前为止,我已经尝试了上面的代码,以及将 JPanel 设置为 null、重新绘制、插入面板的新实例、再次重新绘制。 到目前为止没有任何成果,因为最后,我仍然坚持在我的 GUI 上显示旧面板(及其值)。

基本上,我最初制作一个带有绿色背景的面板,然后将背景设为红色,然后将面板重新设置为绿色背景。然而最后,在点击 Reset 后,它仍然显示带有红色背景的旧面板。

任何关于我可能做错/忽略的事情的见解都将不胜感激。

最佳答案

假设这是所有相关代码(并且 UpdateGUI 不使用 addremove 以及您在那里的面板引用) ,然后更改对象 pnlWagens1 在本地类中引用的内容不会更改仍然引用旧对象的其他引用。旧对象 pnlWagens1 仍然被 Swing 在另一个位置引用,从您最初在某个容器上调用 add 开始。

您需要做的是从容器中删除 pnlWagens1,像现在一样更改pnlWagens1,重新添加 pnlWagens1 到容器,然后调用容器上的 revalidate()repaint()

关于java - Panel.repaint() 似乎没有刷新面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40009632/

相关文章:

java - 我怎样才能让我的标签和文本字段出现在java的边框布局中?

java - Slick-2D : Change back to default OS cursor

java - 是否可以从一个应用程序向另一个应用程序发送消息?

java - 使用雅虎财经报价时 jfreechart 崩溃

java - 网格布局列和行不起作用

java - 尝试使用子文本字段在 JPanel 上设置边框

java - 带有 modular=true 的 Spring Batch 不适用于多个作业

java - Spring Boot Actuators 中是否有检查子服务健康状况的标准方法?

java - 如何连接UI和功能?

java - 加载 bufferedImage 会禁用 JPanel 的 PaintCompontent 方法