Java 在JScrollPane中获取JPanel
我有一个JScrollPane,我在JScrollPane中放了一个JPanel。JPanel持有数量可变的JLabel 以下是我如何“新建”它: 我想知道我怎样才能在另一节课上得到这些JLabel?我尝试了下面的代码,但在出现ClassCastException时无法工作。在这个类中,我成功地获得了JScrollPane,我将使用scrollPane来表示它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
//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