嗨我有一个我想要编程的JButton,这样当按下时,屏幕上会显示一个新的JLabel。我已将JLabel添加到框架中并且可见。它显示了行动之外但不在其中。
标签在方法外声明为lbl,然后在actionPerformed方法中创建
public void actionPerformed(ActionEvent e) {
JLabel lbl = new JLabel("ONE");
}
当按下按钮时,有人可以帮助我显示标签吗?感谢
答案 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);