JFrame a;
        a.removeAll();

解决方案 »

  1.   

    Removes all the components from this container
    panel.removeAll()
    Adds the specified component
    panel.add
      

  2.   

    JFrame中我有一个MenuBar和Panel
    我只希望清楚Panel
    那么我如何获得Frame中的Panel对象的引用?
      

  3.   

    把panel上面的清除不是一样的效果吗
      

  4.   

    在JFrame上set了一个MenuBar。
    选择不同的菜单处理一些不同的事务。
    在实现过程中,每个菜单对应一个不同的类。
    现在我希望在选择不同的菜单的时候,能够清楚原来Panel的内容,
    应该如何实现?
      

  5.   

    菜单一对应的假如是panel1
    菜单二对应的假如是panel2那么菜单事件里面
    if (event.getSource() == 菜单一)
        jframe.getContentPane().add(panel1);
    if (event.getSource() == 菜单二)
        jframe.getContentPane().add(panel2);
      

  6.   

    /**
     * @Create Data: 2004-7-29
     * @Author:      Chenc
     *//**
     * 修改日志记录
     */
    import java.sql.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class AssetdebtListener implements ActionListener {
    private JFrame f;
    private JPanel p = new JPanel();
    private JLabel lbRiqi = new JLabel("日期:"); private JTextField tfRiqi = new JTextField(8);
    // 1
    private JTextField tfHuobzj1 = new JTextField(14);
    private JTextField tfHuobzj2 = new JTextField(14);
    private JTextField tfDqjiek1 = new JTextField(14);
    private JTextField tfDqjiek2 = new JTextField(14);
    private JButton btCommit = new JButton("提交");

    public AssetdebtListener() {
    System.out.println("AssetdebtListener()");
    }

    public AssetdebtListener(Component c) {
                       /* 这边应该如何处理?我想清楚原先的Panel内容*/
    f = (JFrame)c;
    f.getContentPane().removeAll();
    f.getContentPane().repaint();
    }

    public void actionPerformed(ActionEvent e)
    { // line 1
    p.add(new JButton("货币资金"));
    p.add(tfHuobzj1);
    p.add(tfHuobzj2);
    p.add(new JButton("短期借款"));
    p.add(tfDqjiek1);
    p.add(tfDqjiek2);


    p.add(btCommit);
    f.getContentPane().add(p);
    f.setVisible(true);

    // btCommit.addActionListener(new AddCommitListener());
    }
    }
    这是我的一个消息处理类。
      

  7.   

    要获得你的Panel对象的引用,给你的Panel定义get方法不就完了 
    public JPanel getP()
    {
      return p;
    }用的时候就getP().removeAll();这样整个p上的全清除了,就剩一个空的Panel,应该能满足你的要求吧
      

  8.   

    或者干脆就p.setVisible(false);一样能把p看不见,然后再add(newP);
      

  9.   

    将每个菜单项都对应一个PANEL,然后分别让他们可见不可见即可!
      

  10.   

    谢谢以上各位。我不应该把清楚Panel的语句放在构造函数中
    因为消息处理对象AssetdebtListener只new一个。而消息是要处
    理多次的。下次当我再触发消息的时候,AssetdebtListener类中的
    panel就不会被清楚了。
    现在问题解决了,谢谢大家!