Я делаю небольшую систему управления библиотекой, используя Java Swing и API Google Книг . Я просто хочу отобразить обложку книги в виде значка JLabel . Для этого мне нужен URL изображения, который можно взять из классов и функций google-books . Для этого я сначала напечатал строку, которую я получаю-- (String imagePath = imageLinks.getMedium ()). Но я ничего не получаю . Почему это происходит? Что-то не так с моим кодом? Изображения для демонстрации: нажмите здесь !
public class JFrame0 extends javax.swing.JFrame{
private static final String APPLICATION_NAME = "gpj.lms";
public static String title = null;
public static String author = null;
public static String imagePath = null;
public static URL imageUrl;
public static BufferedImage image;
//public static Volume.VolumeInfo.ImageLinks imageLinks;
public static ImageLinks imageLinks;
private static final NumberFormat CURRENCY_FORMATTER = NumberFormat.getCurrencyInstance();
private static final NumberFormat PERCENT_FORMATTER = NumberFormat.getPercentInstance();
private static void queryGoogleBooks(JsonFactory jsonFactory, String query) throws Exception
{
ClientCredentials.errorIfNotSpecified();
final Books books = new Books.Builder(GoogleNetHttpTransport.newTrustedTransport(), jsonFactory, null)
.setApplicationName(APPLICATION_NAME)
.setGoogleClientRequestInitializer(new BooksRequestInitializer(ClientCredentials.API_KEY))
.build();
List volumesList = books.volumes().list(query);
volumesList.setFilter("ebooks");
Volumes volumes = volumesList.execute();
if (volumes.getTotalItems() == 0 || volumes.getItems() == null)
{
Component frame = null;
JOptionPane.showMessageDialog(frame, "No matches found.");
}
for (Volume volume : volumes.getItems())
{
Volume.VolumeInfo volumeInfo = volume.getVolumeInfo();
//imageLinks = volume.getVolumeInfo().getImageLinks();
Volume.SaleInfo saleInfo = volume.getSaleInfo();
title = volumeInfo.getTitle();
author = Arrays.toString(volumeInfo.getAuthors().toArray());
imageLinks = volumeInfo.getImageLinks();
imagePath = imageLinks.getMedium();
//imageUrl = new URL(imagePath);
//image = ImageIO.read(imageUrl);
}}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String ISBN = jTextField5.getText();
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
try
{
queryGoogleBooks(jsonFactory, ISBN);
// Success!
jTextField4.setText(title);
jTextField7.setText(author);
jTextField6.setText(imagePath);
//jLabel6.setIcon((Icon) image);
}
catch (IOException e)
{
JOptionPane.showMessageDialog(null,e);
}
catch (Exception ex)
{
Logger.getLogger(JFrame0.class.getName()).log(Level.SEVERE, null, ex);
}}
}
Я ожидаю, что jTextField6 (текстовое поле для изображенияURL) должен распечатать изображение URL. Но это показывает пустым.