...auf die Anregung doch einen eigenen Thread zu eröffnen mach ich das mal hier
(Vorgeschichte HIER)
Zusammenfassung: Auf imagepanel sollen die Images die vorher der ArrayList hinzugefügt werden
untereinander gezeichnet werden.
So wie es jetzt ist, wird leider nix gezeichnet ...
Mein kompletter Code:
Vielen Dank für die Hilfe
Vannelle
(Vorgeschichte HIER)
Zusammenfassung: Auf imagepanel sollen die Images die vorher der ArrayList hinzugefügt werden
untereinander gezeichnet werden.
So wie es jetzt ist, wird leider nix gezeichnet ...
Mein kompletter Code:
Java:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.border.LineBorder;
public class ImageView extends JFrame implements ActionListener {
final ArrayList<Image> speicher = new ArrayList<Image>();
JTextArea ausgabetext;
JTextField urltext;
JPanel imagepanel, content;
public static void main(String[] args) {
new ImageView();
}
public ImageView() {
super();
init();
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
private void init() {
content = new JPanel();
imagepanel = new JPanel();
JButton scan = new JButton("Scan URL");
ausgabetext = new JTextArea(5, 50);
ausgabetext.setSize(10, 51);
ausgabetext.setEditable(false);
urltext = new JTextField(15);
urltext.setText("http://www.uni-due.de/");
JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewportView(ausgabetext);
JScrollPane scrollPane1 = new JScrollPane();
scrollPane1.setViewportView(imagepanel);
scan.addActionListener(this);
content.setPreferredSize(new Dimension(710, 650));
imagepanel.setPreferredSize(new Dimension(600, 500));
imagepanel.setBorder(new LineBorder(Color.BLACK, 1));
content.add(scrollPane1, BorderLayout.CENTER);
content.add(scan, BorderLayout.CENTER);
content.add(urltext, BorderLayout.CENTER);
content.add(scrollPane);
this.setResizable(false);
this.setContentPane(content);
this.pack();
this.setTitle("Scan URL for images ...");
}
@Override
public void actionPerformed(ActionEvent e) {
ausgabetext.setText("scanning URL ...\n\n");
System.out.println("scanning URL ...");
speicher.clear();
getImage();
}
private void getImage() {
try {
String inputLine;
URL uni = new URL(urltext.getText());
BufferedReader in = new BufferedReader(new InputStreamReader(uni
.openStream()));
while ((inputLine = in.readLine()) != null) {
Pattern p = Pattern.compile("<img.*src=[\"'](.*?)[\"'].*>");
Matcher m = p.matcher(inputLine);
while (m.find() == true) {
String source = inputLine.substring(m.start(1), m.end(1));
if (source.substring(0, 1).equalsIgnoreCase("/")) {
source = "http://www.uni-due.de" + source;
} else if (!source.substring(0, 7).equalsIgnoreCase(
"http://")) {
source = "http://www.uni-due.de/" + source;
}
ausgabetext.append(source + "\n");
System.out.print(source);
System.out.print("\n");
speicher.add(ImageIO.read(new URL(source)));
}
}
in.close();
} catch (Exception e) {
e.printStackTrace();
System.out.println("Feeehhhlleeerrr!!!");
}
imagepanel.repaint();
}
public void paintComponent(Graphics g) {
super.paintComponents(g);
int x = 0, y = 0;
for (Image image : speicher) {
g.drawImage(image, x, y, null);
y += image.getHeight(null);
}
}
}
Vielen Dank für die Hilfe
Vannelle