从一组按钮获取文本

时间:2016-05-28 02:53:45

标签: java swing jbutton actionlistener gettext

我尝试在按钮数组中使用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();
    }

}

非常感谢任何帮助。

谢谢

4 个答案:

答案 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();