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



我有一个带有jlabels,jbutton等的mant组件的分层pane2我想在组件中循环,如果组件是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??
     }
   }

您想要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.
}

根据jlabel文档,您可以使用getText()方法检索标签文本。

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

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

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

正如这个问题所建议的那样。

您的最终代码将是这样的:

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

最新更新