JMenu eintrag anklicken
Jan
- java
0 Martin Jung0 Jan
0 Miriam0 Slyh
Hi zusammen, ich hab im main mein menü definiert, nun möchte ich das wenn auf den Menüpunkt "Pendenz erfassen" geklickt wird, der dialog dlgErfassen erscheint. was muss ich da tun?
package pendenz;
import javax.swing.*;
import java.awt.*;
public class Main {
boolean packFrame = false;
//Die Anwendung konstruieren
public Main() {
frmStart frame = new frmStart();
ImageIcon neu = new ImageIcon("./logo.gif");
ImageIcon clo = new ImageIcon("./close.gif");
JMenuBar mbar = new JMenuBar();
JMenu quick = new JMenu( "Quick" );
quick.add(new JMenuItem("Pendenz erfassen", neu));
quick.addSeparator();
quick.add(new JMenuItem("Beenden", clo));
mbar.add( quick );
frame.setJMenuBar( mbar );
//Frames überprüfen, die voreingestellte Größe haben
//Frames packen, die nutzbare bevorzugte Größeninformationen enthalten, z.B. aus ihrem Layout
if (packFrame) {
frame.pack();
}
else {
frame.validate();
}
//Das Fenster zentrieren
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
}
//Main-Methode
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e) {
e.printStackTrace();
}
new Main();
}
}
Hi,
Hi zusammen, ich hab im main mein menü definiert, nun möchte ich das wenn auf den Menüpunkt "Pendenz erfassen" geklickt wird, der dialog dlgErfassen erscheint. was muss ich da tun?
http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html
Viele Grüße,
Martin Jung
Hi,
sorry dass ich gestern nicht mehr zurückgeschreiben hab, hab etwas früher feierabend gemacht. vielen dank für eure hinweise, werde mich gleich dahinter sezten :)
grüsse Jan
Hi,
Hi,
sorry dass ich gestern nicht mehr zurückgeschreiben hab, hab etwas früher feierabend gemacht. vielen dank für eure hinweise, werde mich gleich dahinter sezten :)
Keine Ursache - Dein Feedback ist in jedem Falle nett!
Viele Grüße,
Martin Jung
Hallo,
du musst erstmal dem JMenuItem eine Action zuordnen, der die Methode public void actionPerformed enthält. Dazu hast du zwei Möglichkeiten.
1. Einfach einen ActionListener einfügen:
public Main() {
frmStart frame = new frmStart();
ImageIcon neu = new ImageIcon("./logo.gif");
ImageIcon clo = new ImageIcon("./close.gif");JMenuBar mbar = new JMenuBar();
JMenu quick = new JMenu( "Quick" );
quick.add(new JMenuItem("Pendenz erfassen", neu));
quick.addSeparator();
quick.add(new JMenuItem("Beenden", clo));
mbar.add( quick );
frame.setJMenuBar( mbar );
//ActionListener in deiner Main-Klasse
ActionListener meinListener = new ActionListener(){
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("Pendenz erfassen")){
//was soll er tun
}
//für weitere MenuItems fortsetzen und eventuell
//am Ende eine else-Methode angeben
}
}
...
}
2. Oder du machst eine extra Klasse einer Action, die die AbstractAction erweitert:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
public class ExampleAction extends AbstractAction {
public ExampleAction(String text, Icon icon){
super(text,icon);
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("Pendenz erfassen")){
//was soll er tun
}
}
}
Diese nutzt du dann so in deiner Main-Klasse:
public Main() {
frmStart frame = new frmStart();
ImageIcon neu = new ImageIcon("./logo.gif");
ImageIcon clo = new ImageIcon("./close.gif");JMenuBar mbar = new JMenuBar();
JMenu quick = new JMenu( "Quick" );
quick.add(new JMenuItem(new ExampleAction("Pendenz erfassen",neu)));
quick.addSeparator();
quick.add(new JMenuItem(new ExampleAction("Beenden", clo)));
mbar.add( quick );
frame.setJMenuBar( mbar );
...
}
Ich hoffe dir damit geholfen zu haben.
Viele Grüße,
Miriam
Hallo,
die URL von Martin hättest du in der API-Doku zu JMenu oder MenuItem
gefunden.
Des weiteren sind Menus in jedem Java-Buch und -Tutorial genaustens
erklärt.
http://www.javabuch.de
http://www.galileocomputing.de/openbook/javainsel3/
Gruß
Slyh
Hi Slyh,
die URL von Martin hättest du in der API-Doku zu JMenu oder MenuItem gefunden.
Jetzt hast Du meinen Trick verraten. Wenn es nicht so traurig wäre, könnte man sogar schmunzeln..
Viele Grüße,
Martin