我有一个方法可以返回一个 jpanel,它的布局设置类似于图像轮播。JPanel
我已经检查过,直接应用时,此代码在单个上运行良好。但是在多个地方都使用了相同的布局。因此,我想创建一个通用方法来设置此布局并返回一个jPanel
. 这是我写的方法:
public static JPanel loadImages(String Location) throws IOException{
JPanel ImagePanel = new JPanel();
File directory = new File(Location);
ImageIcon image;
String[] imageFiles = directory.list();
DefaultListModel model = new DefaultListModel();
JLabel lab1=new JLabel();
JCheckBox chkbox ;
ImagePanel.setLayout(new GridBagLayout());
for (int ii=0; ii<imageFiles.length; ii++) {
GridBagConstraints constraint = new GridBagConstraints();
image = new ImageIcon(imageFiles[ii]);
lab1 = new JLabel(image);
constraint.gridx = ii;
constraint.gridy =0;
ImagePanel.add(lab1,constraint);
}
for (int ii=0; ii<imageFiles.length; ii++) {
GridBagConstraints constraint1 = new GridBagConstraints();
constraint1.anchor = GridBagConstraints.SOUTH;
chkbox = new JCheckBox(imageFiles[ii]);
constraint1.gridx = ii;
constraint1.gridy =1;
ImagePanel.add(chkbox, constraint1);
}
return ImagePanel;
}
我的想法是,在所有需要这样做的地方,我都会在 UI 中设置一个 jscrollpane。我想调用这个方法来返回这个 JPanel,我想把它添加到滚动窗格中。
private void jRadioButton3ActionPerformed(java.awt.event.ActionEvent evt) {
jScrollPane3.add(loadImages("C://users//images"));
jScrollPane3.revalidate();
jScrollPane3.repaint();
}
但什么都没有显示。是不是因为没有设置布局?