Java 刷新JPanel或再次关闭和打开

Java 刷新JPanel或再次关闭和打开,java,swing,refresh,jpanel,layout-manager,Java,Swing,Refresh,Jpanel,Layout Manager,我正在写一个简单的幻灯片程序。在这个程序中,我在一个新的jpanel中显示所有幻灯片的小缩略图。在新的jpanel中,单击2个缩略图后,它应该交换它们。然而,在交换了它们之后,jpanel并没有让人耳目一新。如果我通过调用createAndShowGUI()函数来创建新的jpanel,这是可以的,但是我需要关闭旧的jpanel 下面是我的简单课 在我的主程序中,如果我点击“滑动分拣机模式”按钮,处理程序将编译以下代码 gridLayoutDemoObject.createAndShowGUI(

我正在写一个简单的幻灯片程序。在这个程序中,我在一个新的jpanel中显示所有幻灯片的小缩略图。在新的jpanel中,单击2个缩略图后,它应该交换它们。然而,在交换了它们之后,jpanel并没有让人耳目一新。如果我通过调用createAndShowGUI()函数来创建新的jpanel,这是可以的,但是我需要关闭旧的jpanel

下面是我的简单课

在我的主程序中,如果我点击“滑动分拣机模式”按钮,处理程序将编译以下代码

gridLayoutDemoObject.createAndShowGUI()

解决方案是什么?我应该如何做


谢谢。

您没有提供足够的信息来说明如何显示图像或如何交换图像,因此很难给出正确的答案

我将使用JLabel(或无边框的JButton)显示图像。然后,当您可以使用
setIcon(…)
交换图标时,标签将自行重新绘制


下次发布一篇演示问题的文章,这样我们就不必猜测您在说什么。

您应该发布一些关于如何交换图像的代码。也许你需要调用refresh()。事实上,我没有交换图像,我有一个名为slides的类,每个slide对象都有不同类型的对象,比如直线矩形椭圆等等。因此,在我的jframe的actionlistener中,它跟踪我的点击,并在我的主程序中进行交换。交换是正确的,因为我可以在我的主屏幕上看到更改,但是我在新打开的窗口中看不到更改,该窗口具有所有的缩略图,没错,我使用非常类似于此代码的按钮显示所有幻灯片图标@CanCeylan:camickr的好建议(交换图像图标)解决了您的问题吗?如果是,接受它。如果没有,至少投票给它(我有),创建并发布你的SSCE和具体问题的更详细解释。@camickr,我首先将创建的所有按钮添加到arraylist中,然后用以下方法进行交换,JButton dummy=butonlar.get(y);butonlar.set(y,butonlar.get(x));butonlar.set(x,虚拟);重新油漆();(butonlar是我的arraylist)在我的实际程序中,幻灯片是交换的,但是我的slidesorter没有任何变化window@CanCeylan当前位置你仍然没有给我们提供足够的信息,我们对到底出了什么问题一无所知,尽管有多个请求,但您仍然没有显示有问题的代码或SSCCE——为什么?我不知道您在做什么。在ArrayList中交换按钮与GUI无关。