我知道这是初学者的问题,但它不起作用。这是代码
public void imageshow( String path ) throws IOException {
File root = new File( path );
File[] list = root.listFiles();
if (list == null) return;
for ( File f : list ) {
imageshow(f.getAbsolutePath());
if(f.getName().endsWith("jpg")||f.getName().endsWith("png")||f.getName().endsWith("gif")||f.getName().endsWith("tif"))
{
images=new ArrayList<String>();
DefaultTableModel model=new DefaultTableModel();
model.addColumn("Imya");
table.setModel(model);
model.addRow(new Vector(images));
images.add(f.getName());
image_count++;
for(String img:images)
{
System.out.println(img);
}
}
}
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
DirectoryReader fw = new DirectoryReader();
System.out.println("---Images----");
try {
fw.imageshow("D:\\Installs\\shohruh\\doc");
} catch (IOException ex) {
Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
}
}
所以,我希望当单击按钮时,它应该递归添加到我的JTable。我错过了哪些细节?从逻辑上讲,我正确地编写了代码。但我没有在JTable上显示!请帮助解决这个问题。提前致谢
答案 0 :(得分:2)
为您准备示例代码。
String[] usernames = new String[]{"dev","root","developer","lastroot"};
Collections.reverse(Arrays.asList(usernames));
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(usernames));
在使用
之前拍摄Collections.reverse(Arrays.asList(usernames));
- 使用
后快照 Collections.reverse(Arrays.asList(usernames));
希望它可能适合你。
答案 1 :(得分:1)
可能是因为在每个循环中初始化ArrayList:
images=new ArrayList<String>();
当你想使用递归算法时,你应该将它放在递归方法之外(作为实例变量或其他东西)。 然后,有声明:
model.addRow(new Vector(images));
但图片列表仍为空
private DefaultTableModel model=new DefaultTableModel();
private ArrayList<ArrayList<String>> image=new ArrayList<ArrayList<String>>();
public void imageshow( String path ) throws IOException {
File root = new File( path );
File[] list = root.listFiles();
if (list == null) return;
for ( File f : list ) {
imageshow(f.getAbsolutePath());
if(f.getName().endsWith("jpg")||f.getName().endsWith("png")||f.getName().endsWith("gif")||f.getName().endsWith("tif"))
{
ArrayList<String> row = new ArrayList<String>();
row.add(f.getName());
images.add(row);
image_count++;
}
}
}
当你打电话时:
model.addColumn("Imya");
table.setModel(model);
for(ArrayList<String> list:images)
model.addRow(new Vector(list));
未经测试
private DefaultTableModel model=new DefaultTableModel();
private ArrayList<ArrayList<String>> image=new ArrayList<ArrayList<String>>();
public void imageshow( String path ) throws IOException {
File root = new File( path );
File[] list = root.listFiles();
if (list == null) return;
for ( File f : list ) {
imageshow(f.getAbsolutePath());
if(f.getName().endsWith("jpg")||f.getName().endsWith("png")||f.getName().endsWith("gif")||f.getName().endsWith("tif"))
{
ArrayList<String> row = new ArrayList<String>();
row.add(f.getName());
images.add(row);
image_count++;
}
}
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
DirectoryReader fw = new DirectoryReader();
images.clear();
System.out.println("---Images----");
try {
fw.imageshow("D:\\Installs\\shohruh\\doc");
} catch (IOException ex) {
Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
}
model.addColumn("Imya");
table.setModel(model);
for(ArrayList<String> list:images)
model.addRow(new Vector(list));
}
由JavaDoc编写的格式不完整且未经过测试