0

在这里,我有一个JPanelwith JLabelsand JTextfieldsand some JButtons。一种JTextfield是从用户那里获取数据并单击搜索按钮,它应该从数据库中获取相关数据并在同一面板中显示结果。当我单击提交按钮时。我发现我的屏幕没有变化,但是当我调整框架大小时,我可以看到前一个面板后面的更新面板。即使我尝试remove(rp)然后添加它,结果也与上面相同。

如何用更新的内容替换 JPanel?

PS:我想删除并添加更新内容的同一个面板

我的代码在替换时看起来像这样

private void rp_validate(){
     f.add(rp);
     f.revalidate();
     f.repaint();
     f.pack();
}
4

1 回答 1

1
  1. 创建一个包含从数据库查询中获得的所有必要数据的类。
  2. 为保存您的 JPanel 的 GUI 类提供一个接受上述类的实例的公共“setter”方法。
  3. 然后在 JPanel 类内部,调用setText(...)setter 方法参数中保存的传递信息来更新 JPanel 中显示的文本。像馅饼一样简单。

例如:

public void setMyData(MyData myData) {
   this.myData = myData;
   lastNameTextField.setText(myData.getLastName());
   firstNameTextField.setText(myData.getFirstName());
   addressTextfield.setText(myData.getAddress());
   cityTextfield.setText(myData.getCity());
   stateTextfield.setText(myData.getState());
   // ... etc
}
于 2013-05-01T16:58:12.540 回答