nautiLus`
Erfahrenes Mitglied
Hallo, ich setze mir ein komplettes GUI zusammen
Die letzte Methode download() durchläuft eine HashMap
Die einzelnen "Items" in der HashMap sind Zip Dateien welche ich mittels downloadItem() herunterladen will.
Alles funktioniert prächtig mit dem Herunterladen, aber sobald ich mittels einem anderen GUI (durch Klicken auf einen Button) oben gepostetes GUI aufrufe wird es auch angezeigt aber nicht korrekt. Es sind keine Elemente zu sehen, nur der Frame ist da. und im Hintergrund wird brav heruntergeladen. Sobald der letzte Download abgeschlossen ist, der in der Hashmap stand, erscheint das komplette GUI wieder.
Was hats da für Probleme?
Danke, Nauti
Code:
private void initGui()
{
myFrame = new JFrame();
panel = new JPanel();
myFrame.setResizable(false);
myProgress = new javax.swing.JProgressBar();
myProgress.setBackground (java.awt.Color.black);
myProgress.setForeground (java.awt.Color.red);
label = new JLabel("");
label_1 = new JLabel("");
panel.add (label);
panel.add (myProgress);
panel.add (label_1);
myFrame.setContentPane(panel);
myFrame.setTitle("MP3 Downloader");
myFrame.setBounds(100,100,256,50);
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setVisible(true);
download();
}
Die letzte Methode download() durchläuft eine HashMap
Code:
private void download()
{
int i = 1;
Set HostKeys = hashmap.keySet();
Iterator It = HostKeys.iterator();
while (It.hasNext())
{
String HostNow = (String)(It.next());
System.out.println(hashmap.get(HostNow));
label.setText(hashmap.get(HostNow)+".zip ");
label_1.setText(i+".");
try {
downloadItem(HostNow, (String)this.album+"\\"+hashmap.get(HostNow));
} catch(Exception e) {
JOptionPane.showMessageDialog(null,"Download Error!", "Error",JOptionPane.ERROR_MESSAGE);
}
i++;
}
}
Die einzelnen "Items" in der HashMap sind Zip Dateien welche ich mittels downloadItem() herunterladen will.
Code:
private void downloadItem(String addr, String filename) throws IOException
{
URL url = new URL(addr);
BufferedInputStream bis = new BufferedInputStream(url.openStream());
File file = new File(filename+".zip");
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(file));
byte[] buffer = new byte[8192];
int len;
System.out.println("New download in progress...");
System.out.println("Downloading "+filename+".zip");
while ((len = bis.read(buffer)) > 0)
{
bos.write(buffer, 0, len);
}
bos.flush();
bos.close();
bis.close();
}
Alles funktioniert prächtig mit dem Herunterladen, aber sobald ich mittels einem anderen GUI (durch Klicken auf einen Button) oben gepostetes GUI aufrufe wird es auch angezeigt aber nicht korrekt. Es sind keine Elemente zu sehen, nur der Frame ist da. und im Hintergrund wird brav heruntergeladen. Sobald der letzte Download abgeschlossen ist, der in der Hashmap stand, erscheint das komplette GUI wieder.
Was hats da für Probleme?
Danke, Nauti