如果组件是jlabel,则获取文本

时间:2014-01-28 17:06:53

标签: java swing jlabel

我有一个带有mant组件的LayeredPane2,例如jlabels,jbutton等。 我想循环组件,如果组件是Jlabel,请获取它的文本。 我怎样才能做到这一点?到目前为止,这是我的代码:

   //search the components
   for (int j=0; j<jLayeredPane2.getComponents().length; j++){
     //if it is a jlabel
     if ("class javax.swing.JLabel".equals(jLayeredPane2.getComponent(j).getClass().toString())){
        //HOW DO I GET THE LABEL TEXT??
     }
   }

2 个答案:

答案 0 :(得分:3)

您需要instanceof关键字,然后是演员:

if(jLayeredPane2.getComponent(j) instanceof JLabel) {
    JLabel label = (JLabel)jLayeredPane2.getComponent(j);
    String text = label.getText();
    //...Then do whatever you want to do with said text.
}

答案 1 :(得分:3)

根据JLabel docs,您可以使用getText()方法检索标签文字。

String labelText = ((JLabel) jLayeredPane2.getComponent(j)).getText();

要检查组件是否为JLabel,您可以使用比较

if (jLayeredPane2.getComponent(j) instanceof JLabel) { }

正如this question中已经建议的那样。

你的最终代码是这样的:

if (jLayeredPane2.getComponent(j) instanceof JLabel) {
    Label label = (JLabel) jLayeredPane2.getComponent(j);
    String labelText = label.getText();
}