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

时间:2016-07-24 21:17:15

标签: 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);

                }

1 个答案:

答案 0 :(得分:0)

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

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

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