Hi @all
Ich habe verschiedene Fragen zu dem Code den ich hier gelistet habe.
Warum geht der KeyHandler nicht?
Wie schaffe ich es das im Menu bei Datei das D unterstrichen ist?
ModellbahnerTT
Ich habe verschiedene Fragen zu dem Code den ich hier gelistet habe.
Warum geht der KeyHandler nicht?
Wie schaffe ich es das im Menu bei Datei das D unterstrichen ist?
Code:
import java.awt.Container;
import java.awt.Event;
import java.awt.GridLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;
public class grafikoberflaeche extends JFrame
{
public grafikoberflaeche()
{
super();
this.setTitle("Herzlich Willkommen zu Swing");
this.addKeyListener(new KeyHandler());
this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
Container cp = new Container();
cp.setLayout(new GridLayout(2,1));
cp.add(new JButton("OK"));
cp.add(new JButton("Cancel"));
cp.add(new JButton("Ende"));
cp.add(new JButton("Anfang"));
this.setLocation(100, 100);
this.add(cp);
this.add(cp);
JMenuBar jmb = new JMenuBar();
jmb.add(createMenu());
setJMenuBar(jmb);
this.setSize(300, 200);
this.setVisible(true);
}
private JMenu createMenu()
{
JMenu m = new JMenu("Datei");
m.setMnemonic('D');
JMenuItem mi = new JMenuItem("Neu", 'N');
setCtrlAccelerator(mi, 'O');
// mi.addActionListener(this);
m.add(mi);
mi = new JMenuItem("Highscore", 'H');
setCtrlAccelerator(mi, 'S');
m.add(mi);
mi = new JMenuItem("Beenden", 'B');
setCtrlAccelerator(mi, 'X');
m.add(mi);
return m;
}
private void setCtrlAccelerator(JMenuItem mi, char acc)
{
KeyStroke ks = KeyStroke.getKeyStroke(acc, Event.CTRL_MASK);
mi.setAccelerator(ks);
}
class KeyHandler implements KeyListener
{
public void keyPressed(KeyEvent arg0)
{
char key = arg0.getKeyChar();
if((arg0.isControlDown())&&(key ==KeyEvent.VK_X))
{
System.exit(0);
}
}
public void keyReleased(KeyEvent arg0)
{
}
public void keyTyped(KeyEvent arg0)
{
}
}
public static void main(String[] args)
{
grafikoberflaeche go = new grafikoberflaeche();
}
}
ModellbahnerTT