你只要在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 !
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 !
但是我要的不是哪效果.我要的是比如隐藏北面,那么中间的和两边的就往上占据了原来北面方块的空间.