我有一个按钮,应触发面板中出现的文字,但我无法更改按钮的可见性
我不明白为什么这段代码不起作用(当我点击button1时,标签没有出现)。
public class AWTFrame extends Frame implements ActionListener {
Panel p1 = new Panel();
Label l1 = new Label("You clicked in button1");
public AWTFrame(){
super("Example!");
setSize(450, 250);
p1.setLayout(new FlowLayout());
Button b1 = new Button("Button 1");
b1.addActionListener(this);
Button b2 = new Button("Button 2");
p1.add(b1);
p1.add(b2);
p1.add(l1);
l1.setVisible(false);
add(p1, BorderLayout.NORTH);
}
public void actionPerformed(ActionEvent ae){
l1.setVisible(true);
}
}
答案 0 :(得分:1)
您需要validate()
面板,以便调用布局管理器:
l1.setVisible(true);
p1.validate();
答案 1 :(得分:1)
在框架可见时更新组件时,需要重新验证框架。
使用p1.validate();