如何在JAVA中的JTable中显示URL中的图像

时间:2018-04-17 15:58:12

标签: java jtable imageurl

我知道这将是一个重复的问题,但我无法在我的案例中找到答案。我在MySQL数据库中有一个URL的图片(比如这个https://i.imgur.com/VcV0SG.jpg)。所以我需要在JTable中渲染这些图像。我怎样才能做到这一点?有谁能够帮我?提前谢谢。

  

代码

            java.lang.reflect.Type listType = new TypeToken<ArrayList<Products>>() {}.getType();
            List<Products> productsList = new Gson().fromJson(json, listType);

            for(Products pro : productsList)
            {
                DefaultTableModel model = (DefaultTableModel) productsTable.getModel();
                Vector<String> row = new Vector<String>();

                row.add(pro.getCode());
                row.add(pro.getName());
                row.add(pro.getPrice());
                //returns String (url of the image like `https://i.imgur.com/VcV0SG.jpg`)
                row.add(pro.getPic());
                model.addRow(row);
            }

1 个答案:

答案 0 :(得分:4)

我知道你知道如何从MySQL中提取数据。如果您已有数据,则剩下的部分非常简单。使用import javax.swing.*; import javax.swing.table.DefaultTableModel; import java.awt.*; import java.net.MalformedURLException; import java.net.URL; public class Main extends JPanel { public static void main(String[] args) { EventQueue.invokeLater(() -> { try { showGui(); } catch (MalformedURLException e) { e.printStackTrace(); } }); } public Main() throws MalformedURLException { Icon icon1 = new ImageIcon(new URL( "https://www.cleverpetproducts.com/wp-content/uploads/2018/03/tardar.jpg")); Icon icon2 = new ImageIcon(new URL( "https://www.cleverpetproducts.com/wp-content/uploads/2018/03/tardar.jpg")); Icon icon3 = new ImageIcon(new URL( "https://www.cleverpetproducts.com/wp-content/uploads/2018/03/tardar.jpg")); String[] columnNames = {"Picture", "Text"}; Object[][] data = { {icon1, "Text 1"}, {icon2, "Text 2"}, {icon3, "Text 3"}, }; DefaultTableModel model = new DefaultTableModel(data, columnNames) { public Class getColumnClass(int column) { return getValueAt(0, column).getClass(); } }; JTable table = new JTable(model); table.setPreferredSize(new Dimension(500, 500)); table.getColumn(columnNames[0]).setPreferredWidth(300); table.getColumn(columnNames[1]).setPreferredWidth(100); table.setRowHeight(0, 100); table.setRowHeight(1, 100); table.setRowHeight(2, 100); JScrollPane scrollPane = new JScrollPane(table); add(scrollPane); } private static void showGui() throws MalformedURLException { JFrame frame = new JFrame("Icon showcase"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(new Main()); frame.setLocationByPlatform(true); frame.pack(); frame.setVisible(true); } } 。这是一个例子:

{{1}}