T
Tomate_Salat
Gast
Heyho,
Ich beschäftige mich gerade verstärkt mit Animation und es tauchen verstärkt Probleme auf :-! . Ich will ein Panel erstellen, welches ein Hintergrundbild hat, dass sich immer der Größe des Panels anpasst. Wollte das ganze mit überschriebener [c]paintComponent();[/c] lösen, aber da bekam ich mein Bild nicht einmal angezeigt. Jetzt bin ich auf ein [c]JLabel[/c] umgestiegen. Mein Problem: das ist krottenlangsam und dem Endbenutzer nicht zumutbar. Hier mal mein Ansatz:
Hoffe Ihr könnt mir helfen.
Mit freundlichen Grüßen
Tomate_Salat
Ich beschäftige mich gerade verstärkt mit Animation und es tauchen verstärkt Probleme auf :-! . Ich will ein Panel erstellen, welches ein Hintergrundbild hat, dass sich immer der Größe des Panels anpasst. Wollte das ganze mit überschriebener [c]paintComponent();[/c] lösen, aber da bekam ich mein Bild nicht einmal angezeigt. Jetzt bin ich auf ein [c]JLabel[/c] umgestiegen. Mein Problem: das ist krottenlangsam und dem Endbenutzer nicht zumutbar. Hier mal mein Ansatz:
Java:
public class FlyPanel
extends JPanel
{
private static final long serialVersionUID = 1L;
private Image IMAGE;
private JLabel ICON;
public FlyPanel(URL url)
{
super();
setDoubleBuffered(true);
setOpaque(true);
setLayout(null);
loadIMG(url);
ICON = new JLabel();
ICON.setLocation(0, 0);
add(ICON);
addComponentListener(stateListener);
}
public void loadIMG(URL url)
{
try {
IMAGE = ImageIO.read(url);
} catch (IOException e) {
e.printStackTrace();
}
}
private void configurateIcon()
{
ICON.setSize( getSize() );
if(IMAGE != null)
{
ICON.setIcon(new ImageIcon(IMAGE.getScaledInstance(getWidth(), getHeight(), Image.SCALE_SMOOTH)));
}
}
private ComponentListener stateListener = new ComponentListener()
{
@Override
public void componentShown(ComponentEvent e) {
if(ICON != null)
configurateIcon();
}
@Override
public void componentResized(ComponentEvent e) {
if(ICON != null)
configurateIcon();
}
@Override
public void componentMoved(ComponentEvent e) {
}
@Override
public void componentHidden(ComponentEvent e) {
}
};
}
Hoffe Ihr könnt mir helfen.
Mit freundlichen Grüßen
Tomate_Salat