Java - Was mach ich falsch?

Gruß Thomas!

Grand Admiral Special
Mitglied seit
27.03.2008
Beiträge
2.027
Renomée
118
Standort
Bayreuth
  • Docking@Home
Ich will ein Programm schreiben, dass mir die aktuellen Bilder von nichtlustig.de anzeigt. Aber im Moment scheitert das schon an der GUI. Im Anhang seht ihr ein Bild.

Geplant hatte ich folgendes Layout:

200x200 Comic
Unten darunter dann die Buttons. Das passt schonmal, aber wird so blöd resized, woran liegt das?

PHP:
import javax.swing.*;
import javax.swing.text.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class GUI extends JFrame
{
    private JButton refresh;
    private JButton forward;
    private JButton back;
    private JLabel image;
    private JPanel mainPanel;
    
    public GUI()
    {
        super("NichtDownloader");
        initGUI();
    }

    private void initGUI()
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                mainPanel = new JPanel();
                mainPanel.setLayout(null);
                mainPanel.setBounds(0,0,300,300);
                
                image = new JLabel(new ImageIcon(Download.download("http://nichtlustig.de/comics/full/101205.jpg")));
                image.setBounds(0,0,200,200);
                mainPanel.add(image);
                
                back = new JButton("Zurueck");
                back.setBounds(0,200,50,50);
                mainPanel.add(back);
                
                refresh = new JButton("Aktualisieren");
                refresh.setBounds(50,200,100,50);
                mainPanel.add(refresh);
                
                forward = new JButton("Vorwärts");
                forward.setBounds(150,200,50,50);
                mainPanel.add(forward);
                
                setLayout(null);
                getContentPane().setLayout(null);
                getContentPane().add(mainPanel);
                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                pack();
                setIconImage(new ImageIcon("icon.png").getImage());
                setSize(new Dimension(300,300)); 
                setResizable(true);
                setLocationRelativeTo(null);
                setVisible(true);
            }
        });
    }
    
    public void update()
    {
        image.setIcon(new ImageIcon(Download.download("http://nichtlustig.de/comics/full/101208.jpg")));
    }
}
 
Zuletzt bearbeitet:
Probiers doch so, oder hab ich was nicht verstanden?
Code:
import javax.swing.*; 
import java.awt.*; 
import java.net.MalformedURLException;

public class GUI extends JFrame 
{ 
    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JButton refresh; 
    private JButton forward; 
    private JButton back; 
    private JLabel image; 
    private JPanel mainPanel; 
     
    public GUI() 
    { 
        super("NichtDownloader"); 
        initGUI(); 
    } 

    private void initGUI() 
    { 
        SwingUtilities.invokeLater(new Runnable() 
        { 
            public void run() 
            { 
                mainPanel = new JPanel(); 
                mainPanel.setLayout(null); 
                mainPanel.setBounds(0,0,300,300); 
                 
                try {
					image = new JLabel(new ImageIcon(new java.net.URL("http://nichtlustig.de/comics/full/101205.jpg")));
				} catch (MalformedURLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} 
                image.setBounds(0,0,200,200); 
                mainPanel.add(image); 
                 
                back = new JButton("Zurueck"); 
                back.setBounds(0,200,50,50); 
                mainPanel.add(back); 
                 
                refresh = new JButton("Aktualisieren"); 
                refresh.setBounds(50,200,100,50); 
                mainPanel.add(refresh); 
                 
                forward = new JButton("Vorwärts"); 
                forward.setBounds(150,200,50,50); 
                mainPanel.add(forward); 
                 
                setLayout(null); 
                getContentPane().setLayout(null); 
                getContentPane().add(mainPanel); 
                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
                pack(); 
                setIconImage(new ImageIcon("icon.png").getImage()); 
                setSize(new Dimension(300,300));  
                setResizable(true); 
                setLocationRelativeTo(null); 
                setVisible(true); 
            } 
        }); 
    } 
     
    public void update() 
    { 
        image.setIcon(new ImageIcon(Download.download("http://nichtlustig.de/comics/full/101208.jpg"))); 
    }
    public static void main(String[] args) {
    	new GUI();
		
	}
}
 
Bei dir kommt dasselbe raus wie bei mir. Das Bild sieht genauso aus wie in meinem Screenshot... Woran liegt das?

Download macht nicht viel anders wie bei dir:

PHP:
/**
 * 
 */
import java.awt.*;
import java.net.*;
import javax.imageio.ImageIO;
import java.io.IOException;
import javax.swing.*;

public class Download
{    
    public static Image download(String filename)
    {
        Image image = null; 
        try 
        { 
            // Read from a URL 
            URL url = new URL(filename);
            image = ImageIO.read(url); 
        } 
        catch (IOException e) 
        {
            return null;
        } 
        return image;
    }
}
 
Zuletzt bearbeitet:
mhh, kanns sein das deine navigation unten das bild in der breite eingrenzt?
wie sieht das ganze ohne die navigation aus?

bin jetzt nicht der java-spezi aber würde mit so einfallen. das er den aufbau an der breite der buttons festlegt. wenn das bild größer ist wirds beschnitten.
 
Ah danke für den Hinweis xD... Ich hab die falsche Größe für das Bild angenommen, hab gedacht das wär nur 200x200...
 
Jetzt mag er. :)
 
Zuletzt bearbeitet:
Zurück
Oben Unten