So ändern Sie Bild mit dem Klick auf eine Schaltfläche in java

Wenn bereits ein Bild angezeigt, durch klicken auf eine Schaltfläche, wie kann ich es ändern, um ein anderes?

Sagen, ich habe zwei Bild gepuffert.

bi = ImageIO.read(new File("1.jpg");
bi2 = ImageIO.read(new File("2.jpg"));

sowie zur Anzeige der bi-ich bin mit

public void paint(Graphics g){
    super.paintComponent(g);

    Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); 
    int w = ((int) dim.getWidth() / 2) - (bi.getWidth() / 2);
    int h = ((int) dim.getHeight() / 2) - (bi.getHeight() / 2);

    g.drawImage(bi, w, h, null);
}

Ich bin versucht, dies zu tun.

JButton b = new JButton("Change Image");
b.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent ae){
        bi = bi2;
        paint(null);
    }
});

diesem set bi, um ein neues Bild und paint () - Methode aufgerufen, aber der Bildbetrachter selbst nicht erscheint jetzt überhaupt.

Fortsetzung von festlegen JFrame hintergrund transparent, aber JPanel oder JLabel-Hintergrund undurchsichtig?

  • Warum verwenden Sie nicht nur setImageIcon(imageIcon) Methode der Taste?
  • Der einfachste Weg ist, um Sie als Alternative Symbole auf einer schmucklos-Taste, wie gezeigt, in den die Antwort.
  • Wette mich um 8 Sekunden. 😉
  • Hurra!!!!!! 😛
  • Ich denke, es würde davon abhängen, ob die OP mit der Malerei Symbole auf einer Taste ist oder nicht. Sie konnten malen, um den Behälter statt? Sie gilt jedoch (+1 für Sie) - Sie können auch eine JLabel statt
  • Für bessere Hilfe früher, nach einem SSCCE. Beachten Sie, dass public void paint(Graphics g){ super.paintComponent(g); ist fast sicher falsch. Werden mehr wissen, wenn ich sehe, ein SSCCE.
  • für den pick-up auf super.paintComponent verpasst, dass

InformationsquelleAutor sabbibJAVA | 2012-08-23
Schreibe einen Kommentar