Java 在另一个框架中单击按钮,更新JPanel在另一个框架中的内容
我已经创建了一个具有面板p1的帧x1。加载x1时,复选框将动态添加到p1。添加到p1的复选框的数量取决于数据库表(t1)中满足特定条件的数据值的数量 框x1上有一个按钮b1。当单击b1时,它显示另一个帧x2,其中可以修改数据库表t1的数据值。x2中的“更新”按钮更新t1,以反映对其数据值所做的更改 修改后,当x2关闭时,我希望自动更新第x1帧中的面板p1,以反映对数据库所做的更改,即在修改x2中的t1后,满足条件的数据值的数量可能已更改,因此,p1上显示的复选框的数量也可能已更改 如何从x2刷新和重新加载x1中面板p1的组件 我想知道是否有人能帮我解决这个问题。提前感谢,并对问题中的大量文本表示抱歉Java 在另一个框架中单击按钮,更新JPanel在另一个框架中的内容,java,swing,netbeans,jframe,jpanel,Java,Swing,Netbeans,Jframe,Jpanel,我已经创建了一个具有面板p1的帧x1。加载x1时,复选框将动态添加到p1。添加到p1的复选框的数量取决于数据库表(t1)中满足特定条件的数据值的数量 框x1上有一个按钮b1。当单击b1时,它显示另一个帧x2,其中可以修改数据库表t1的数据值。x2中的“更新”按钮更新t1,以反映对其数据值所做的更改 修改后,当x2关闭时,我希望自动更新第x1帧中的面板p1,以反映对数据库所做的更改,即在修改x2中的t1后,满足条件的数据值的数量可能已更改,因此,p1上显示的复选框的数量也可能已更改 如何从x2刷新
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
}
通常,当您希望对UI所做的更改实际正确可见时,会调用
validate()
,然后调用repaint()
单击b1时,将显示另一帧x2,其中包含数据值
可以修改数据库表t1的
- 改用
p1.revalidate();
p1.repaint();
- 将是可行的,不要重新创建
的新实例,然后必须将此对象集添加到JPanel
,然后必须调用JFrame
&validate()
到repaint()
(现在我希望您不要扩展此容器:-)JFrame
- 改用
- 不要创建两个或多个
,而是使用JFrames
JDialog
- 创建
(JDialog
)仅一个实例,将此容器用于来自父级的另一个操作setDefaultCloseOperation(JDialog.CLOSE…
JFrame Frame;
public f1(JFrame f){
frame=f;
}
然后,编写一个close方法
int closeFrame(){
f.fillPanel();
f.show();
return JFrame.HIDE_ON_CLOSE;
}
设置帧f2的默认关闭操作
public f1(JFrame f){
frame=f;
this.setDefaultCloseOperation(closeFrame());
}
希望一切正常。您可以在ActionListener for按钮中执行以下操作:
//jp is a JPanel
//remove the current JPanel
frame.remove(jp);
//do the changes you want to do
//set sizes and border as before
//again add the panel
frame.add(jp);
frame.revalidate();
frame.repaint();
为了获得更好的帮助,请尽快发布一个带有harcoded值(Random)的文件,而不是JDBC,否则这里的所有内容都可能是指向黑暗的快照此链接……此问题已在此处解决。。。。