我尝试在按钮数组中使用actionlistener来更改按钮的颜色,然后将按下的按钮的字符串值设置为名为Letters的String。我的问题是在我的行动执行部分,我收到的错误是"找不到符号符号:getText()
这是添加actionlistener
的代码for (int i = 0; i < buttons.length; i++) {
buttons[i] = new JButton(String.valueOf(Alphabet[i]));
buttons[i].addActionListener(new Pick());
alphabetWindow.add(buttons[i]);
}
按下按钮时的代码。
static class Pick implements ActionListener {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();//gets which button was pressed
((Component) source).setBackground(Color.green);
Letter = ((Component) source).getText();
}
}
非常感谢任何帮助。
谢谢
答案 0 :(得分:1)
或者使用actionCommand
的{{1}}属性,该属性默认为生成事件的按钮文本
ActionEvent
答案 1 :(得分:0)
您应该将来源转发为button
。 IDE无法推断您希望在类层次结构的更深层中调用该方法。
static class Pick implements ActionListener {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();//gets which button was pressed
((JButton) source).setBackground(Color.green);
Letter = ((JButton) source).getText();
}
}
答案 2 :(得分:0)
Component#getText()
不存在,这就是您收到错误的原因。只需将source
投射到JButton
。
Letter = ((JButton) source).getText();
答案 3 :(得分:0)
Component是许多控件的超类,包括按钮,并且没有getText()方法。你应该尝试类似的东西:
Letter = ((JButton) source).getText();