有人可以解释为什么以下不能如我所料?removeAll在下次验证时不会删除?
按下'should'按钮会导致仅包含(空)JScrollPane的显示,即输入字段和按钮应该消失。然而,他们留下,直到组件被调整大小...
public static void main(String[] args)
{
JFrame frame = new JFrame("test");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
final JPanel panel = new JPanel();
Container cp = frame.getContentPane();
cp.setLayout(new FlowLayout());
cp.add(new JScrollPane(panel));
Component textField = new JTextField("i am input");
JButton button = new JButton(new AbstractAction("i am pressy")
{
@Override
public void actionPerformed(ActionEvent e)
{
// this is already on the EDT
panel.removeAll();
panel.revalidate();
}
});
panel.setLayout(new FlowLayout());
panel.add(textField);
panel.add(button);
frame.pack();
frame.setVisible(true);
}
感谢您的帮助。页。
试试'panel.repaint()'而不是? – Jeremy 2011-04-27 23:52:16
好[sscce](http://sscce.org/)。 – trashgod 2011-04-28 03:21:51