Hallo Forum,
in meiner Anwendung habe ich eine Statusleite eingefügt, die bisher einen statischen Text enthält. Nun möchte ich aber, dass dieser sich ändert, wenn man z.B. über gewisse Menüeinträge mit der Maus fährt. Meine Klasse StatusBar sieht folgendermaßen aus:
In meiner Klasse, die für das Menü zuständig ist, habe ich dann das Interface MouseListener implementiert und dessen Methoden überschrieben:
Allerdings ändert sich nicht der Text in der Statusleiste. Was muss ich denn ändern? Weiß jemand Rat?
Schon mal vielen Dank im Voraus.
Gruß
Padde
in meiner Anwendung habe ich eine Statusleite eingefügt, die bisher einen statischen Text enthält. Nun möchte ich aber, dass dieser sich ändert, wenn man z.B. über gewisse Menüeinträge mit der Maus fährt. Meine Klasse StatusBar sieht folgendermaßen aus:
Code:
import java.awt.FlowLayout;
import java.awt.Font;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class StatusBar extends JPanel {
private static final long serialVersionUID = -2413510742335769608L;
/**
* Label mit Statusmeldung
*/
private JLabel status = new JLabel(Messages.getName("statusbar.0"));
public JLabel getStatus() {
return status;
}
public void setStatus(String text) {
status.setText(text);
}
public StatusBar() {
// TODO Auto-generated constructor stub
setLayout(new FlowLayout(FlowLayout.LEFT));
setFont(new Font("Arial", Font.BOLD, 8));
add(status);
}
}
In meiner Klasse, die für das Menü zuständig ist, habe ich dann das Interface MouseListener implementiert und dessen Methoden überschrieben:
Code:
public class FileMenu extends JMenu implements ActionListener, MouseListener {
...
private JMenuItem getExitItem() {
icon = new ImageIcon("img/exit.png");
item = new JMenuItem(Messages.getName("fileitem.4"), icon);
item.setAccelerator(KeyStroke.getKeyStroke(Messages.getInt("fileshortcut.4"), Event.CTRL_MASK));
item.addActionListener(this);
item.addMouseListener(this);
return item;
}
public void actionPerformed(ActionEvent evt) {
// TODO Auto-generated method stub
System.exit(0);
}
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
statusbar.setStatus(Messages.getName("fileitem.4"));
}
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
statusbar.setStatus(Messages.getName("fileitem.4"));
}
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
statusbar.setStatus(Messages.getName("fileitem.4"));
}
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
statusbar.setStatus(Messages.getName("fileitem.4"));
}
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
statusbar.setStatus(Messages.getName("fileitem.4"));
}
}
Allerdings ändert sich nicht der Text in der Statusleiste. Was muss ich denn ändern? Weiß jemand Rat?
Schon mal vielen Dank im Voraus.
Gruß
Padde