Настройка галереи изображений с NetBeans - PullRequest
0 голосов
/ 11 апреля 2009

Я хочу отобразить набор изображений (со связанным текстом) в моем окне. Я хочу перебрать их, используя предыдущую и следующую кнопку. Пока что мне удалось связать изображение только с JLabel. = /

Как мне делать все остальное? Должен ли я использовать другой контейнер для полной комплектации? Должен ли я загружать изображения в структуру данных, например ArrayList, или этого достаточно, чтобы хранить их в папке? Как добавить обработку событий, чтобы при нажатии кнопки отображалось следующее или предыдущее изображение?

Вот скриншот того, что у меня есть.

1 Ответ

1 голос
/ 04 ноября 2010

Вы все еще здесь?

Я предполагаю, что вы нашли, как загрузить путь к каждому из ваших изображений (если они находятся в одной папке). Вам следует сохранить путь к каталогу в глобальной переменной, а затем имя каждого изображения в векторе, если вы хотите выполнить их итерацию. Просто храните имена файлов, а не все изображения. Вы также должны сохранить индекс текущего изображения как глобальную переменную.

Если вы используете JFrame в качестве основного окна, вы должны указать, что он реализует класс ActionListener следующим образом:

public class MyClass extends JFrame implements ActionListener

Затем вы должны прикрепить обработчик событий к вашим кнопкам (JButton). Это должно быть размещено внутри конструктора вашего окна (MyClass):

nextButton.addActionListener(this);
previousButton.addActionListener(this);

После реализации ActionListener ваш класс должен определить метод actionPerformed. Внутри него вы должны изменить содержимое изображения в соответствии с нажатой кнопкой.

public void actionPerformed(ActionEvent e)
{
     Object o = e.getSource();
     if(o == nextButton)
     {
          currentIndex++;
          if(currentIndex == vectorImages.size())
          {
               currentIndex = 0;
          }
          //Change the image in the JLabel
          label.setIcon(new ImageIcon(vectorImages.get(currentIndex)));
     }
     else
     {
          //Iterate backwards
     }
}

Надеюсь, это поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...