• Как сделать подгрузку изображений к списку?

    Ну так вы же пытаетесь нарисовать ImageProvider, который не является Image. ImageProvider это сервис, который поставляет вашему TransformingCanvas изображения. В методе отрисовки вы вначале должны запросить изображение у него через getImage() и уже это изображение рисовать
  • Как сделать подгрузку изображений к списку?

    Более того, такой подход позволит вам легко реализовать отложенную загрузку изображений (если вдруг она станет длительной операцией). Для этого в интерфейсе ImageProvider вы добавляете возможность регистрации слушателей, которые будут оповещаться о том, что произошла загрузка. Реализация ImageProvider сама определяет, что что-то загрузилось и рассылает оповещения зарегистрированным слушателям. А в сеттере setImageProvider(ImageProvider) вы регистрируете в переданном ImageProvider-е слушателя, который будет вызывать перерисовку
  • Как сделать подгрузку изображений к списку?

    В TransformingCanvas у вас есть сеттер для ImageProvider, который при изменении провайдера вызывает перерисовку:
    public void setImageProvider(ImageProvider imageProvider) {
       this.imageProvider = imageProvier;
       repaint();
    }

    А теперь вы просто в том месте, откуда хотите устанавливать изображение, вызываете этот сеттер:
    butGo.addActionListener(new ActionListener() {        
          public void actionPerformed(ActionEvent e) {            
            canvas.setImageProvider(new ImageProvider() {
                public Image getImage() {
                    String n = combo.getSelectedItem();
                    Image image = new ImageIcon(n + ".jpg").getImage();
                    return image;
                }
            });
          }   
    });

    Таким образом вы инкапсулируете логику получения изображения от его отрисовки. Если возникнет ситуация, когда нужно поменять изображение не с помощью кнопки, а каком то другом месте, вам не придется переписывать TransformingCanvas, вы просто вызываете у него setImageProvider в нужном месте.
  • Почему не работает шаблон в .gitignore?

    @nikolaas Автор вопроса
    Ох, блин-блин-блин. Вы правы! Я сглупил. Файлы уже под версионным контролем. Вопрос закрыт