我正在做一个程序,我需要一个JFrame根据主JFrame中的一个选择来更改其组件,我试图这样做:

public void agregarPanelSegunPrueba(FrmBoleto frm)
{
    //this panel is a JPanel make with the graphical editor in netbeans
    PnlPruebaDCExesoVelocidad pnl = new PnlPruebaDCExesoVelocidad();
    pnl.repaint();
    pnl.revalidate();
    frm.getContentPane().remove(frm.getPnlPruebasDistanciaTiempo());
    frm.getContentPane().add(pnl);
    frm.pack();
    frm.setVisible(true);

}


有人知道这是错的。提前致谢。

最佳答案

您需要添加的revalidate();repaint();而不是JPanel,而只是添加面板的容器。

您需要致电:

frm.getContentPane().revalidate();
frm.getContentPane().repaint();


代替 :

pnl.repaint();
pnl.revalidate();


在该行之后:frm.getContentPane().add(pnl);

09-28 05:12