removeAll在下次验证时不删除吗?

有人可以解释以下原因为何无法达到我的预期吗?

按下按钮“应该”将导致显示中仅包含(空)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);

}

谢谢你的帮助。p。

回答:

更新可见的GUI时,代码应为:

panel.revalidate();

panel.repaint(); // sometimes needed, this appears to be one of them

以上是 removeAll在下次验证时不删除吗? 的全部内容, 来源链接: utcz.com/qa/400985.html

回到顶部