Я прочитал в игре учебник, как загружать изображения, и они сделали это:Загрузка изображения
public Image loadImage(... String ref ...) {
...
URL url = this.getClass().getClassLoader().getResource(ref);
BufferedImage source = ImageIO.read(url);
GraphicsConfiguration gc = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();
Image image = gc.createCompatibleImage(source.getWidth(), source.getHeight(), Transparency.BITMASK);
image.getGraphics().drawImage(source, 0, 0, null);
return image;
}
Это абсолютно не лучший способ с точки зрения удобства и ясности (= никто не мог найти этот путь только используя их здоровые мозги). Почему это так сложно? Это должно быть? Почему загрузка изображения не может быть столь же легко, как:
BufferedImage image = ImageIO.read(ref);
Есть более простой способ, если вы просто хотите, чтобы загрузить изображение таким образом, что Java автоматически делает все по умолчанию «материал» он должен сделать? Может быть, причина, по которой автор этого кода выбрал другой способ, потому что он хотел достичь некоторого поведения, отличного от дефолта? При написании ответа, пожалуйста, поймите, что я ищу простой способ решить проблему загрузки изображений, а также способность и понимание применять более сложные средства, если это необходимо.
редактировать: Также оба ответа хорошие презентации их авторы мнений надо, до сих пор не могу accept
один ответ, потому что ответ не показывает более простой способом и/или объясняет, что именно происходит.
Это гарантирует, что программисты java хорошо платят за простые задачи :-D – Ali
возможно, вопрос лучше размещен на programers.stackexchange.com – Ali
На самом деле эта функция не должна компилироваться. Вы возвращаете экземпляр класса «Image», когда метод объявлен для возврата 'BufferedImage'. –