Hallo zusammen,
ich bin grad dabei, den Umgang von JButtons zu erlernen und dachte auch, dass ich ganz gut damit zurechtkomme. Nun stehe ich aber vor einem Problem, das ich mir nicht erklären kann.
Meine Anwendung ist eigentlich eine ganz einfache: Ich habe ein Fenster, an dessen linker Seite 4 Buttons sind, die jeweils ein kleines Bild beinhalten. Wenn ich auf einen der 4 Buttons klicke, soll nun das gewählte Bild in groß an der rechten Seite erscheinen.
Hier zuerst mein Code:
Wie gesagt, das Bild ändert sich beim Klick leider nicht und ich verstehe nicht, woran es liegen könnte, da ich mit getSource() arbeite, wenn der entsprechende Button geklickt wird und dann mein Icon fürs Label sozusagen neu erzeugt wird.
Kann mir jemand weiterhelfen?
ich bin grad dabei, den Umgang von JButtons zu erlernen und dachte auch, dass ich ganz gut damit zurechtkomme. Nun stehe ich aber vor einem Problem, das ich mir nicht erklären kann.
Meine Anwendung ist eigentlich eine ganz einfache: Ich habe ein Fenster, an dessen linker Seite 4 Buttons sind, die jeweils ein kleines Bild beinhalten. Wenn ich auf einen der 4 Buttons klicke, soll nun das gewählte Bild in groß an der rechten Seite erscheinen.
Hier zuerst mein Code:
Java:
package Buttons;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
public class Aufgabe_3_9 extends JFrame implements ActionListener{
private JButton btn1;
private JButton btn2;
private JButton btn3;
private JButton btn4;
private JLabel lblBild;
private JLabel lblText;
//---------------------------------------
// Konstruktor - baut das Fenster auf
//---------------------------------------
public Aufgabe_3_9() {
btn1 = new JButton(new ImageIcon("img/bild1vorschau.jpg"));
btn2 = new JButton(new ImageIcon("img/bild2vorschau.jpg"));
btn3 = new JButton(new ImageIcon("img/bild3vorschau.jpg"));
btn4 = new JButton(new ImageIcon("img/bild4vorschau.jpg"));
lblBild = new JLabel( new ImageIcon("img/bild2.jpg"));
lblText = new JLabel("Bitte ein Bild anklicken", JLabel.CENTER);
//-----------------------------------
// Dialogelemente konfigurieren
//-----------------------------------
btn1.setToolTipText("Bild zeigt ...");
btn2.setToolTipText("Bild zeigt ...");
btn3.setToolTipText("Bild zeigt ...");
btn4.setToolTipText("Bild zeigt ...");
lblBild.setToolTipText("angezeigt wird ...");
//-----------------------------------
// Dialogelemente platzieren
//-----------------------------------
JPanel westPanel = new JPanel(new GridLayout(0,1,5,5));
westPanel.add(btn1);
westPanel.add(btn2);
westPanel.add(btn3);
westPanel.add(btn4);
JPanel centerPanel = new JPanel(new BorderLayout());
centerPanel.setBackground(new Color(150,150,150));
centerPanel.add(lblBild);
JPanel southPanel = new JPanel(new BorderLayout());
southPanel.add(lblText);
JPanel mainPanel = new JPanel(new BorderLayout(10,10));
mainPanel.setBorder(new EmptyBorder(10,10,10,10));
mainPanel.add(westPanel , BorderLayout.WEST);
mainPanel.add(centerPanel, BorderLayout.CENTER);
mainPanel.add(southPanel , BorderLayout.SOUTH);
//-----------------------------------
// Fenster konfigurieren
//-----------------------------------
getContentPane().add(mainPanel);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setTitle("Aufgabe_3_9");
pack();
setVisible(true);
}//constructor
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()== btn1) {
lblBild.setIcon(new ImageIcon("img/bild1.jpg"));
}
if(e.getSource()== btn2) {
lblBild.setIcon(new ImageIcon("img/bild2.jpg"));
}
if(e.getSource()== btn3) {
lblBild.setIcon(new ImageIcon("img/bild3.jpg"));
}
if(e.getSource()== btn4) {
lblBild.setIcon(new ImageIcon("img/bild4.jpg"));
}
}
//BILD ÄNDERT SICH NICHT!!
public static void main(String[] args){
new Aufgabe_3_9();
}
}// class
Wie gesagt, das Bild ändert sich beim Klick leider nicht und ich verstehe nicht, woran es liegen könnte, da ich mit getSource() arbeite, wenn der entsprechende Button geklickt wird und dann mein Icon fürs Label sozusagen neu erzeugt wird.
Kann mir jemand weiterhelfen?
Zuletzt bearbeitet von einem Moderator: