Как загрузить папку изображений с помощью JFileChoose и добавить следующую, предыдущую кнопку для предварительного просмотра изображения по одному в JLabel? - PullRequest
0 голосов
/ 07 июля 2019

enter image description here Я устанавливаю JFrame с Jlabel для просмотра изображения в нем, и для этого изображения я загружаю его из папки и добавляю кнопку «следующий» и «предыдущий» для просмотра следующего и предыдущего изображений в этом ярлыке.после выбора папки с помощью кнопки Jfilechooser.после того, как я загрузил папку и щелкнул первое изображение для просмотра, а затем я нажал кнопку «Далее», чтобы продолжить загрузку одновременно, я не получил никакого изображения в Jlabel, это был темный экран без изображений ... он показывает только первое изображение, которое я нажалв ней и следующей кнопке не получалось получить следующий

первый способ получить изображение из JFileChooser

private String[] getImages() {
    imgch = new JFileChooser(".");
    // File file = new File(getClass().getResource("/").getFile());
    File file = imgch.getCurrentDirectory();
    String[] imagesList = file.list();            
    return imagesList;     
  } 

Второй: показать изображение

private void showImage(int index) throws IOException {
    String[] imagesList = getImages();
    String imageName = imagesList[index];
    File file = imgch.getSelectedFile();
    ImageIcon icon = new ImageIcon(file+imagesList);
          Image newImg = 
   icon.getImage().getScaledInstance(canvas.getWidth(), 
    canvas.getHeight(), Image.SCALE_SMOOTH);

    viewer.setIcon(new ImageIcon(newImg));
}

1 Ответ

0 голосов
/ 12 июля 2019

решается путем изменения этой строки в showImage () File file = imgch.getSelectedFile();
на File file = imgch.getCurrentDirectory(); path = file.getAbsolutePath().concat("/"+imageName);, а затем передается «путь» в ImageIcon

...