I
IvaNiK
Gast
Hallo!
Ich habe ein Programm geschrieben, das in einem JLabel mit hintergrundfarbe ein Bild anzeigt. Es gibt 3 Buttons in einer Toolbar die die Hintergrundfarbe des JLabels ändern können. Es gibt auch ein Menü um zwischen 3 verschiedenen Bildern wählen zu können die im JLabel angezeigt werden sollen.
Leider kommt bei mir wenn ich auf einen Button Klicke in der Toolbar oder auf ein MenuItem in dem Menü immer ein Fehler....irgendeine Exception (Bei den Buttons in der ToolBar diese: Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.JButton und bei den MenuItems diese hier: Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.JMenuItem).
Thx im Vorhinein
mfg IvaNiK
Ich habe ein Programm geschrieben, das in einem JLabel mit hintergrundfarbe ein Bild anzeigt. Es gibt 3 Buttons in einer Toolbar die die Hintergrundfarbe des JLabels ändern können. Es gibt auch ein Menü um zwischen 3 verschiedenen Bildern wählen zu können die im JLabel angezeigt werden sollen.
Leider kommt bei mir wenn ich auf einen Button Klicke in der Toolbar oder auf ein MenuItem in dem Menü immer ein Fehler....irgendeine Exception (Bei den Buttons in der ToolBar diese: Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.JButton und bei den MenuItems diese hier: Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.JMenuItem).
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Bildbetrachter extends JFrame{
JLabel hintergrund;
private JButton red, blue, yellow;
/** Creates a new instance of Bildbetrachter */
public Bildbetrachter(){
super("PixShow");
setSize(400,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().setLayout(new BorderLayout());
Listener bild = new Listener();
//Menue
JMenuBar mbar = new JMenuBar();
JMenu bildM = new JMenu( "Bild" );
mbar.add( bildM );
setJMenuBar( mbar );
//Menue-Items
JMenuItem wolf = new JMenuItem("Wolf");
wolf.addActionListener(bild);
JMenuItem katze = new JMenuItem("Katze");
katze.addActionListener(bild);
JMenuItem hund = new JMenuItem("Hund");
hund.addActionListener(bild);
bildM.add(wolf);
bildM.add(katze);
bildM.add(hund);
//Toolbar
JToolBar buttons = new JToolBar();
red = new JButton(new ImageIcon("rot.jpg"));
red.addActionListener(bild);
blue = new JButton(new ImageIcon("blau.jpg"));
blue.addActionListener(bild);
yellow = new JButton(new ImageIcon("gelb.jpg"));
yellow.addActionListener(bild);
buttons.add(red);
buttons.add(blue);
buttons.add(yellow);
getContentPane().add(buttons, BorderLayout.NORTH);
hintergrund = new JLabel(new ImageIcon("test.jpg"));
hintergrund.setBackground(Color.red);
hintergrund.setOpaque(true);
getContentPane().add(hintergrund);
setVisible(true);
}
public static void main(String [] args){
Bildbetrachter pixViewer = new Bildbetrachter();
}
}
class Listener extends JFrame implements ActionListener{
public void actionPerformed(ActionEvent evt){
JLabel source = (JLabel)evt.getSource();
Object cmd = evt.getActionCommand();
if(cmd == "Wolf"){
source.setIcon(new ImageIcon("test.jpg"));
}
if(cmd == "Katze"){
source.setIcon(new ImageIcon("katze.jpg"));
}
if(cmd == "Hund"){
source.setIcon(new ImageIcon("hund.jpg"));
}
if(cmd == new ImageIcon("rot.jpg")){
source.setBackground(Color.red);
}
if(cmd == new ImageIcon("gelb.jpg")){
source.setBackground(Color.yellow);
}
if(cmd == new ImageIcon("blau.jpg")){
source.setBackground(Color.blue);
}
}
}
Thx im Vorhinein
mfg IvaNiK