Java 在JScrollPane中获取JPanel

Java 在JScrollPane中获取JPanel,java,swing,jpanel,jscrollpane,jviewport,Java,Swing,Jpanel,Jscrollpane,Jviewport,我有一个JScrollPane,我在JScrollPane中放了一个JPanel。JPanel持有数量可变的JLabel 以下是我如何“新建”它: 我想知道我怎样才能在另一节课上得到这些JLabel?我尝试了下面的代码,但在出现ClassCastException时无法工作。在这个类中,我成功地获得了JScrollPane,我将使用scrollPane来表示它 //I only put a panel in the JScrollPane, so I used 0 in the getCompo

我有一个JScrollPane,我在JScrollPane中放了一个JPanel。JPanel持有数量可变的JLabel

以下是我如何“新建”它:

我想知道我怎样才能在另一节课上得到这些JLabel?我尝试了下面的代码,但在出现ClassCastException时无法工作。在这个类中,我成功地获得了JScrollPane,我将使用scrollPane来表示它

//I only put a panel in the JScrollPane, so I used 0 in the getComponent() method
JPanel panel = scrollPane.getComponent(0);
for(int i = 0; i < panel.getComponentCount(); i++){
    JLabel label = (JLabel)panel.getComponent(i);
}
将抛出ClassCastException

java.lang.ClassCastException: javax.swing.JViewport cannot be cast to javax.swing.JPanel
感谢您的帮助:)

您必须返回到您的组件类型

更好的解决方案是在数组中维护
JLabel
s的列表或
list

JPanel panel = scrollPane.getComponent(0);
java.lang.ClassCastException: javax.swing.JViewport cannot be cast to javax.swing.JPanel