我有一个带有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??
}
}
答案 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();
}