我正在尝试在文本标签中输入一个名称,然后按下“播放”按钮。
文本字段和按钮
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);
}
});
}
我尝试创建上面的方法来存储它,但这似乎根本没有做任何事情。 任何帮助表示赞赏。
答案 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);
之后的某个地方)