使用AWT在ActionPerformed中设置标签可见

时间:2014-06-06 18:56:59

标签: java user-interface awt

我有一个按钮,应触发面板中出现的文字,但我无法更改按钮的可见性

我不明白为什么这段代码不起作用(当我点击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);
    }
}

2 个答案:

答案 0 :(得分:1)

您需要validate()面板,以便调用布局管理器:

    l1.setVisible(true);
    p1.validate();

答案 1 :(得分:1)

在框架可见时更新组件时,需要重新验证框架。

使用p1.validate();