2016-07-24 5 views
0

Ich erstelle derzeit eine Datenbank, die Informationen aus IMDB und Rotten Tomaten verwendet. Beim Ausdruck der Daten (in einem GUI-Rahmen) muss ich die URL zum Posterbild des Films auflisten.Können Sie ein Bild mit der URL des Bildes zu einer GUI hinzufügen?

Meine Frage ist: Anstatt die Bild-URL zu drucken, gibt es eine Möglichkeit, die URL zu verwenden, um das Bild OHNE das Bild lokal gespeichert zu zeigen?

Hier ist der Code Ich habe die Daten von mySQL abgerufen anzuzeigen (Es funktioniert, ich will nur die URL als ein Bild zu zeigen, statt Link):

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); 

       } 
+0

Sie verwenden ein [JLabel] (https://docs.oracle.com/javase/tutorial/uiswing/components/icon.html) von einer URL um das Bild anzuzeigen – copeg

Antwort

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

In Ihrem Fall, dass Sie wird Ihre While-Schleife bearbeiten und ein neues Label hinzufügen, das das Bild darstellt.

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