在jpanel中搜索按钮并获取按钮的文本?

时间:2015-04-20 14:58:46

标签: java swing

您好我从JPanel中的按钮获取文本时遇到问题。我的程序将有一个JPanel,里面有4个按钮。每个按钮都有一个随机整数,显示为文本。我希望我的程序能够获得从键盘按下的键,并检查该键是否与任何按钮匹配。文字(像计算器一样)。 如果该键与JPanel中的任何按钮匹配,它将打印出该键并禁用该按钮。

我的代码类似于:

private void formKeyPressed(java.awt.event.KeyEvent evt) {                                
    Component[] comp = numpanel.getComponents();
    for (int i = 0;i<comp.length;i++) {
        if (comp[i] instanceof JButton) {

             //check if it matches with any button's text

        }
    }
}                               

当我尝试编写comp [i] .getText()以检查密钥和按钮的文本时出错。根据我的理解,它说comp [i]是一个组件,它没有getText()方法,我理解正确吗?

我如何解决这个问题,或者他们是否有其他方法可以解决这个问题?

1 个答案:

答案 0 :(得分:4)

  

它说comp [i]是一个组件,它没有方法getText(),我理解正确吗?

  

我如何解决这个问题,或者他们是否有其他方法可以解决这个问题?

如果您知道comp[i]是一个JButton,例如在if语句中,您检查到它与instanceof一致,那么您可以将其转换为JButton,并使用getText ()方法。

.... = ((JButton)comp[i]).getText();