Java游戏:如何存储在文本字段中输入的名称,并在按下按钮时显示在标签中

时间:2014-12-07 14:38:27

标签: java textfield

我正在尝试在文本标签中输入一个名称,然后按下“播放”按钮。

文本字段和按钮

private JTextField nameEnter = new JTextField("Enter name here");
private JButton saveName = new JButton("Play");
private JLabel namelabel = new JLabel("Player 1");

添加到纸板和位置

getContentPane().add(nameEnter);
getContentPane().add(saveName);
getContentPane().add(namelabel);
nameEnter.setBounds(80,80+gize*bsize,200,50);
saveName.setBounds(100,100+gsize*bsize,200,50);
namelabel.setBounds(40,40+gsize*bsize,200,50);

显示正常。

  public void UpdateName() {
          JButton saveName = new JButton("Play");
                   saveName.addActionListener(new ActionListener()
                   {
                        public void actionPerformed(ActionEvent ae)
                        {
                        final String pName = nameEnter.getText();
                             namelabel.setText(pName);
                        }
                    });


  }

我尝试创建上面的方法来存储它,但这似乎根本没有做任何事情。 任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

方法确实:

  • 创建新按钮
  • 附加一个监听器
    • 在操作上(单击),更新名称

要重复使用已添加到布局中的现有saveName按钮, 删除创建新按钮的行,即:

  public void UpdateName() {
       saveName.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                 final String pName = nameEnter.getText();
                 namelabel.setText(pName);
            }
        });
  }

答案 1 :(得分:1)

您的UpdateName()方法正在创建自己的本地JButton saveName按钮并向其添加ActionListener。问题是此按钮与您添加到内容窗格的按钮不同。

我不确定为什么你甚至需要这种方法。最简单的解决方案是放置负责添加此侦听器的代码

saveName.addActionListener(new ActionListener(){
     public void actionPerformed(ActionEvent ae){
          namelabel.setText(nameEnter.getText());
     }
});
初始化方法中的

getContentPane().add(saveName);之后的某个地方)