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

Java 如果组件是jlabel,则获取文本,java,swing,jlabel,Java,Swing,Jlabel,我有一个带有许多组件的分层窗格2,如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(jLayere

我有一个带有许多组件的分层窗格2,如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??
     }
   }
//搜索组件

对于(int j=0;j您需要
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.
}

您需要
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.
}
根据,可以使用
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();
}
根据,可以使用
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();
}

Nope-
jLayeredPane2.getComponent(j).getText()
将失败,因为不是每个组件都提供
getText()
方法。我忘记添加强制转换。Nope-
jLayeredPane2.getComponent(j).getText()
将失败,因为不是每个组件都提供
getText()
方法。我忘记添加强制转换。