java - 您可以使用图片的 URL 将图像添加到 GUI 中吗?

标签 java mysql image user-interface jdbc

我目前正在创建一个使用 IMDB 和烂番茄信息的数据库。在数据的打印输出中(在 GUI 框架中),我必须列出电影海报图像的 URL。

我的问题是这样的:有没有一种方法可以使用 URL 来显示图像而不将图像存储在本地,而不是打印图像 URL?

这是我必须显示从 mySQL 检索的数据的代码(它有效,我只想将 URL 显示为图像而不是链接):

public void mouseClicked(MouseEvent e) {
            JFrame frame3 = new JFrame("Query 1: Top Movies");
            frame3.setBackground(Color.BLACK);
            frame3.setSize(new Dimension(1500,1500));
            frame3.setVisible(true);
            frame3.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
            System.out.println("frame created");

            try {
                loadConnection();

                //create query
                System.out.println("Connection loaded...");

                String sql = "SELECT M.TITLE,M.YEAR,M.RTAUDIENCESCORE,M.IMDBPICTUREURL FROM MOVIES AS M ORDER BY RTAUDIENCESCORE DESC,TITLE LIMIT 10";

               //prepares statement for execution
                java.sql.PreparedStatement ps = con.prepareStatement(sql);
                ResultSet rs = ps.executeQuery(); 
                System.out.println("Query Successful!");

                //create labels for output
                JLabel l1, l2, l3, l4;
                JTextField title, year, RTscore, IMDBURL;

                //labels
                l1 = new JLabel("Title");
                l2 = new JLabel("Year");
                l3 = new JLabel("RT Audience Score");
                l4 = new JLabel("IMDB Picture URL");

                l1.setBounds(20, 20, 150, 20);
                l2.setBounds(200, 20, 150, 20);
                l3.setBounds(380, 20, 150, 20);
                l4.setBounds(560, 20, 150, 20);

                frame3.add(l1);
                frame3.add(l2);
                frame3.add(l3);
                frame3.add(l4);


                System.out.println("Frames added...");

                int y = 50;

                while (rs.next()) {
                    //Text fields
                    title = new JTextField();
                    year = new JTextField();
                    RTscore = new JTextField();
                    IMDBURL = new JTextField();

                    title.setText(rs.getString(1));
                    year.setText(rs.getString(2));
                    RTscore.setText(rs.getString(3));
                    IMDBURL.setText(rs.getString(4));

                    title.setBounds(20, y, 150, 20);
                    year.setBounds(200, y, 150, 20);
                    RTscore.setBounds(380, y, 150, 20);
                    IMDBURL.setBounds(560, y, 150, 20);
                    y+=30;

                    frame3.add(title);
                    frame3.add(year);
                    frame3.add(RTscore);
                    frame3.add(IMDBURL);

                }

最佳答案

JLabel jLabelObject = new JLabel();
jLabelObject.setIcon(new ImageIcon(IMDBURL))

在您的情况下,您将编辑 while 循环并添加代表图像的新标签。

frame3.add(title);
 frame3.add(year);
 frame2.add(RTscore);
 frame3.add(jLabelObject);

关于java - 您可以使用图片的 URL 将图像添加到 GUI 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38556891/

相关文章:

导致内核崩溃的 Java 8 gradle 脚本

java - 用模拟版本替换静态字段会导致 IllegalArgumentException

mysql - 在 R 中建模并在 SQL 中评分

php - php中的mysql_query会同时阻塞查询吗?

vb.net - 加载图像时出现内存不足异常

image - 在 Matlab 中复制(绘制)一个图像到另一图像的区域内?

c# - Python 中不安全的图像处理,如 C# 中的 LockBits

java - Android 中缓存目录名称的问题

java - 您将如何访问 Eclipse JDT 索引?

mysql - 当我只需要 WHERE 子句中连接(右)表中的一列时,是否需要左外连接?