我目前正在创建一个数据库,该数据库使用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);