在按钮单击另一帧中更新帧上的JPanel内容

use*_*910 4 java swing netbeans jpanel jframe

我创建了一个框架x1,它有一个面板p1.加载x1时,会将复选框动态添加到p1.添加到p1的复选框的数量取决于满足特定条件的数据库表(t1)中的数据值的数量.

第x1帧上有一个按钮b1.当点击b1时,它显示另一个帧x2,其中可以修改数据库表t1的数据值.x2中的按钮"更新",更新t1以反映对其数据值所做的更改.

修改后,当x2关闭时,我希望自动更新第x1帧中的面板p1以反映对数据库所做的更改,即在x2中修改t1后,满足条件的数据值的数量可能会发生变化,因此,数字在p1上显示的复选框也可能已更改.

如何从x2刷新并重新加载x1中面板p1的组件.

想知道是否有人可以帮助我解决问题.在此先感谢并对问题中的文本加载感到抱歉.

    In x2:

       private void UPDATEActionPerformed(java.awt.event.ActionEvent evt)
         {
        //x1 is an object of ParentFrame

        ParentFrame f1=new ParentFrame();
              f1.fillPanel();
              //fillpanel()fills p1 with checkboxes after running validate() and repaint() on it


             }
Run Code Online (Sandbox Code Playgroud)

mKo*_*bel 7

当点击b1时,它显示另一个帧x2,其中可以修改数据库表t1的数据值

添加到p1的复选框的数量取决于满足特定条件的数据库表(t1)中的数据值的数量.

确保删除了JPanel中的当前内容

p1.revalidate();
p1.repaint();
Run Code Online (Sandbox Code Playgroud)
  • 会的作品,不要到re_create的新实例JPanel,那么你必须这样Objcet添加到JFrame,则必须调用validate()repaint()JFrame(现在我希望你doean't扩展该容器:-)

修改后,当x2关闭时,我希望自动更新第x1帧中的面板p1以反映对数据库所做的更改,即在x2中修改t1后,满足条件的数据值的数量可能会发生变化,因此,数字在p1上显示的复选框也可能已更改.

  • 使用CardLayout代替

  • 不要创建两个或更多JFrames,JDialog改为使用,

  • create JDialog(setDefaultCloseOperation(JDialog.CLOSE...))只有一个实例,将此容器重新用于父级的另一个操作


Dan*_* D. 3

通常,当您希望 UI 的更改实际上正确可见时,您会先调用 a validate(),然后再调用 a。repaint()