Unten folgt der Quelltext für ein kleines Beispielprogramm, das nach einem Klick auf einen Button ein Bild links neben dem Button anzeigen soll.
Mein Problem ist, dass ich es nicht schaffe mit einer repaint-Methode die Oberfläche neu aufzubauen, sodass das Bild angezeigt wird. Die einzige Möglichkeit das Bild nach einem Klick auf den Button doch noch auf den Bildschirm zu zaubern, ist die Größe des Programmfensters mit der Maus zu verändern und die JVM so zu einem repaint zu zwingen.
Ich wäre dankbar wenn Ihr mir sagen könnten wo mein Fehler liegt und wie man die repaint-Methode zu laufen kriegt.
Danke für Eure Hilfe
Zwiggel
####Quelltext#####
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class RepaintTest2_main extends JPanel
{
JFrame HAUPTFRAME;
JPanel PANEL_LINKS;
JPanel PANEL_RECHTS;
JButton BUTTON;
ImageIcon BILD;
JLabel IMGLABEL;
public static void main(String[] args)
{
RepaintTest2_main RT2 = new RepaintTest2_main();
RT2.paint();
}
public void paint()
{
HAUPTFRAME = new JFrame(„Repainttest“);
PANEL_RECHTS = new JPanel();
PANEL_RECHTS.setBackground(Color.darkGray);
BUTTON = new JButton(„Bild laden“);
BUTTON.addActionListener(new Buttonlistener());
PANEL_RECHTS.add(BUTTON);
HAUPTFRAME.getContentPane().add(BorderLayout.EAST, PANEL_RECHTS);
PANEL_LINKS = new JPanel();
HAUPTFRAME.getContentPane().add(BorderLayout.WEST, PANEL_LINKS);
HAUPTFRAME.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
HAUPTFRAME.setSize(800,600);
HAUPTFRAME.setVisible(true);
}
class Buttonlistener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
System.out.println(„Button gedrückt!“);
BILD = new ImageIcon("/home/marcel/testBilder/bild01.jpg");
IMGLABEL = new JLabel(BILD);
PANEL_LINKS.add(IMGLABEL);
HAUPTFRAME.repaint();
}
}
}