在Java中使用actionPerformed创建JLabel

时间:2012-01-29 19:50:47

标签: java swing jbutton jlabel

嗨我有一个我想要编程的JButton,这样当按下时,屏幕上会显示一个新的JLabel。我已将JLabel添加到框架中并且可见。它显示了行动之外但不在其中。

标签在方法外声明为lbl,然后在actionPerformed方法中创建

    public void actionPerformed(ActionEvent e) {

        JLabel lbl = new JLabel("ONE");
}

当按下按钮时,有人可以帮助我显示标签吗?感谢

3 个答案:

答案 0 :(得分:3)

这是你这样做的方式:

  public void actionPerformed(ActionEvent e) {
    if (e.getSource() == buttonname){ 
        labelname.setVisible(true);

    }
}

另外,别忘了做

buttonname.addActionListener(this);

并在您布置表单的方法中添加以下内容:

yourPanel.Add(labelname)

希望这有帮助!

阿诺

答案 1 :(得分:1)

你还在中声明了 actionPerformed方法 - 这个声明可能隐藏了前一个(在方法之外)。你能发布更多代码吗?以下代码适用于我:

public class NewLabel
{
    public static void main(String[] args)
    {

        final JFrame frame = new JFrame();

        JButton button = new JButton("Add label");

        button.addActionListener(new ActionListener()
        {

            public void actionPerformed(ActionEvent e)
            {

                JLabel lbl = new JLabel("ONE");
                frame.add(lbl);

                frame.setSize(100, 100);
                // or you can't see the new button without resizing manually!
            }
        });

        frame.add(button);
        frame.pack();
        frame.setVisible(true);

    }
}

(在某些情况下,您可能还需要通过调用revalidate()来告诉容器/框架重新布局...)

答案 2 :(得分:1)

您创建了JLabel,但未将其添加到任何容器中。这就是为什么它没有显示。你写的是好的,你只需要将标签添加到它应该在的容器上。

JLabel lbl = new JLabel("ONE");
yourPanel.Add(lbl);