你只要在dolayout后再加上一句repaint();重刷一下屏幕就可以了改动后代码如下:import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class e1202 extends JFrame implements ActionListener
{
  private String name[]={"隐藏北面","隐藏南","隐藏西","隐藏东","隐藏中间"};
  private JButton button[] = new JButton[name.length];
  public e1202()
  {
   super("e1202.java");
   for(int i = 0;i<name.length;i++)
        button[i]=new JButton(name[i]);
   Container c = getContentPane();
   c.setLayout(new BorderLayout(5,5));
   c.add(button[0],BorderLayout.NORTH);
   c.add(button[1],BorderLayout.SOUTH);
   c.add(button[2],BorderLayout.WEST);
   c.add(button[3],BorderLayout.EAST);
   c.add(button[4],BorderLayout.CENTER);
   setSize(300,150);
   show();
   for(int i = 0;i<name.length;i++)
        button[i].addActionListener(this);
  }
  public void actionPerformed(ActionEvent e)
  {
    String command = e.getActionCommand();
    if (command.equals("隐藏北面"))
        {
        remove(button[0]);
         doLayout();
         repaint();////////////add
        }
    else if (command.equals("隐藏南"))
    {
    remove(button[1]);
         doLayout();
         repaint();////////////add
    }
    else if(command.equals("隐藏西"))
      {
        remove(button[2]);
        doLayout();
        repaint();////////////add
      }
    else if(command.equals("隐藏东"))
      {
       remove(button[3]);
        doLayout();
        repaint();////////////add
      }
    else 
      {
        remove(button[4]);
         doLayout();
         repaint();////////////add
      }
  }
  public static void main(String args[])
  {
    e1202 app = new e1202();
  }
}—————————————————————————————————Just Wish you have a nice day !