Hallo liebe Kollegen,
nachdem ich mir ein Javaprogramm geschrieben habe, indem ich mir mit Buttons ein Menu zusammengebaut habe, möchte ich mich nun an Der MenuBar() bzw. Menu() versuchen.
Das aufbauen der Menuleisten ist nicht besonders schwer, nur jetzt habe ich ein Problem mit dem Actionlistener.
Beim Button habe ich das folgendermaßen erledigt.
Ich habe mir einfach jeden Button den ich erstellt habe zurückgebenlassen und damm mit getSource() untersucht ob der bestimmte Button gedrückt wurde. Der Vorteil ist hier, dass ich 1000 Butten mit dem Namen "Ende" vergeben kann und jeder Button was anderes machen könnte.
Jetzt möchte ich das gleiche bei der Listbox hinbekommen. Nur leider weiß ich nicht, wie ich ein einzelnes MenuItem auf .getSource() untersuchen kann, bzw zurückgeben kann. Jeder Versuch führte dazu, dass die gesamte Menueleiste das Programm beendet.
Im Moment funktioniert meine Menuleiste wie folgt
Kann mir einer sagen, wie ich das mit getSource hin bekomme?
Gruß Alaska
nachdem ich mir ein Javaprogramm geschrieben habe, indem ich mir mit Buttons ein Menu zusammengebaut habe, möchte ich mich nun an Der MenuBar() bzw. Menu() versuchen.
Das aufbauen der Menuleisten ist nicht besonders schwer, nur jetzt habe ich ein Problem mit dem Actionlistener.
Beim Button habe ich das folgendermaßen erledigt.
Code:
JButton register = adm_hinz.get_register();
if (arg0.getSource().equals(register)) {
.........
}
Ich habe mir einfach jeden Button den ich erstellt habe zurückgebenlassen und damm mit getSource() untersucht ob der bestimmte Button gedrückt wurde. Der Vorteil ist hier, dass ich 1000 Butten mit dem Namen "Ende" vergeben kann und jeder Button was anderes machen könnte.
Jetzt möchte ich das gleiche bei der Listbox hinbekommen. Nur leider weiß ich nicht, wie ich ein einzelnes MenuItem auf .getSource() untersuchen kann, bzw zurückgeben kann. Jeder Versuch führte dazu, dass die gesamte Menueleiste das Programm beendet.
Im Moment funktioniert meine Menuleiste wie folgt
Code:
/*
* Diese Klasse baut ein Swingfenster und die dazugehörigen Objekte
*/
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.event.ActionListener;
i
public class Window extends JFrame{
private Start controller = null;
//Hier wird das Fenster erstellt über den default-standart-Konstruktor
public Window(String ueberschrift,int x, int y,Start c){
this.controller=c;
this.setLayout(null);
this.setTitle(ueberschrift);
//this.addWindowListener(new WindowClosingAdapter(true));
this.setSize(x,y);
this.setResizable(false);
}
//Diese Methode setzt das Fenster auf Visible
public void zeige_Fenster(boolean wert){
this.setVisible(wert);
}
public MenuBar menuleiste(){
MenuBar menu= new MenuBar();
return menu;
}
public Menu add_Menu(String name){
Menu m = new Menu(name);
m.add(m);
return m;
}
public Menu edit_menu(String name, Menu menu){
menu.add(new MenuItem(name));
menu.addActionListener((ActionListener) controller);
return(menu);
}
public Menu unter_Menu(Menu eingang, Menu ausgang){
ausgang.add(eingang);
return ausgang;
}
public Menu ende_menu(String name, Menu menu){
MenuItem mi;
mi=new MenuItem(name);
mi.setActionCommand(name);
mi.addActionListener(controller);
menu.add(mi);
return menu;
}
public Start getC() {
return controller;
}
public void setC(Start c) {
this.controller = c;
}
}
Code:
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowListener;
import javax.swing.JFrame;
public class Start extends JFrame implements ActionListener {
private Window fenster = null;
private MenuBar menuleiste = null;
private Menu menu= null;
private Menu ende = null;
private Menu untermenu = null;
/**
* @param args
*/
public Start(){
this.fenster=new Window("Menu",600,600,this);
this.menuleiste= new MenuBar();
menu=this.fenster.add_Menu("Datei");
menu=this.fenster.edit_menu("Exit", menu);
menu=this.fenster.ende_menu("Ende", menu);
//menu.add(ende);
this.menuleiste.add(menu);
menu=new Menu("Bearbeiten");
untermenu= this.fenster.add_Menu("Speichern");
untermenu=this.fenster.edit_menu("Alles", untermenu);
untermenu=this.fenster.edit_menu("Markierung", untermenu);
menu=this.fenster.unter_Menu(untermenu,menu);
this.menuleiste.add(menu);
this.fenster.setMenuBar(this.menuleiste);
this.fenster.zeige_Fenster(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Start start = new Start();
}
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
String cmd=arg0.getActionCommand();
if(cmd.equals("Ende")){
System.exit(0);
}
}
}
Kann mir einer sagen, wie ich das mit getSource hin bekomme?
Gruß Alaska