I´m currently working on a little programm witch displays pictures from a website in a little Swing GUI. The Problem is, that every time the picture changes a new frame pops up instead of refreshing the JLable.
I have no idea how to realize this after trying a few attempts with different methods.
It would be nice if you could give me a little hint.
import java.awt.BorderLayout;
import java.awt.Image;
import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.*;
public class PageReader extends JFrame {
JLabel picture;
static String[] viewable;
int counter;
static String urlString;
Image image;
URL url;
public PageReader(int pos) throws IOException
{
urlString = "http:"+viewable[pos];
url = new URL(urlString);
image = ImageIO.read(url);
ImageIcon icon = new ImageIcon(image);
picture = new JLabel();
picture.setIcon(icon);
int breite = icon.getImage().getWidth(this);
int hoehe = icon.getImage().getHeight(this);
do
{
if(hoehe>400)
{
breite *= 0.75;
hoehe *= 0.75;
icon.setImage(icon.getImage().getScaledInstance(breite, hoehe, image.SCALE_DEFAULT));
}
if(hoehe<400)
{
hoehe *= 1.2;
breite *=1.2;
icon.setImage(icon.getImage().getScaledInstance(breite, hoehe, image.SCALE_DEFAULT));
}
}while(hoehe>400&&hoehe<300);
icon.setImage(icon.getImage().getScaledInstance(breite, hoehe, image.SCALE_DEFAULT));
JPanel anzeige = new JPanel();
anzeige.add(picture, BorderLayout.CENTER);
setContentPane(anzeige);
pack();
setResizable(false);
setVisible(true);
}
public static void main(String[] args) throws IOException, InterruptedException {
// TODO Auto-generated method stub
String meineURL = "http://www.pr0gramm.com/static/";
URL url = new URL(meineURL);
InputStreamReader isr = new InputStreamReader(url.openConnection().getInputStream());
BufferedReader br = new BufferedReader(isr);
// Kompletten Seiteninhalt auslesen
String line ="";
String quelltext ="";
while((line = br.readLine()) != null)
{
quelltext += line + "\r\n";
}
// Reader Schließen
br.close();
isr.close();
String test = quelltext.substring(1708);
String[] parts = test.split("<a href=");
for(int i=1; i<parts.length; i++)
{
parts[i]=parts[i].substring(1,15);
}
viewable = new String[parts.length];
for(int i = 1; i<(parts.length-1); i++)
{
String sitePath = "http://pr0gramm.com"+parts[i];
meineURL = sitePath;
url = new URL(meineURL);
isr = new InputStreamReader(url.openConnection().getInputStream());
br = new BufferedReader(isr);
// Kompletten Seiteninhalt auslesen
line ="";
quelltext ="";
while((line = br.readLine()) != null)
{
quelltext += line + "\r\n";
}
CharSequence picPath = quelltext.subSequence(quelltext.indexOf("//img.pr0gramm.com/"), quelltext.indexOf("//img.pr0gramm.com/")+50);
viewable[i] = picPath.toString();
// Seiteninhalt ausgeben
//System.out.println(quelltext);
System.out.println(viewable[i]);
}
System.out.println("\nLink-Counter: "+viewable.length);
//System.out.println("//img.pr0gramm.com/2015/06/25/87fd872bde0ab593.jpg");
new PageReader(4);
//System.out.println("\n \n \n Sub \n \n"+test);
for(int i = 1; i<viewable.length; i++)
{
if(!(viewable[i].contains(".web")))
{
url = new URL("http:"+viewable[i]);
new PageReader(i);
System.out.println("test"+i);
urlString = "http:"+viewable[i];
Thread.sleep(5000);
}
}
}
}
This is my current code.