• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Java: Tastaturkürzel ohne Menüs

Status
Für weitere Antworten geschlossen.

Bleistift

Mitglied
Hallo,
ich schreibe gerade einen Editor. Jetzt will ich eine Vollbildansicht hinzufügen. dafür habe ich schon ein JWindow mit einem JTextArea angelegt, funktioniert auch schon. Nun sollen die Tastaturkürzel der menüs im normalen Fenster auch bei der Vollbildansicht noch funktionieren. Deswegen habe ich für das Textfeld einen KeyListener geschrieben, allerdings weiß ich nicht wie ich überprüfen soll, welche Tasten gedrückt wurden. Gibt es z. B. für Strg+n oder Strg+p Konstanten(Integer zum Vergleich mit event.getKeyCode()) oder muss ich das anders machen und wenn ja wie? Danke für antworten.
mfg Bleistift
 
Werbung:
Initialisierung:
Code:
    scroll2 = new JScrollPane();
    scroll2.setWheelScrollingEnabled(true);
    scroll2.setLayout(new ScrollPaneLayout());
    JPanel panel2 = new JPanel();
    panel2.setLayout(new BorderLayout());
    textfeld2 = new JTextArea();
    textfeld2.setText(" ");
    PlainDocument dokument2 = new PlainDocument();
    dokument2.addDocumentListener(new textlisten());
    textfeld2.setDocument(dokument2);
    textfeld2.addMouseListener(new popupzeigen());
    textfeld2.addKeyListener(new MyKeyAdapter2());
    textfeld2.addKeyListener(new vbkl());
    panel2.add(textfeld2,BorderLayout.CENTER);
    scroll2.getViewport().setView(panel2);
....
    vb = new JWindow(this);
    vb.setSize(Toolkit.getDefaultToolkit().getScreenSize());
    vb.setLayout(new BorderLayout());
    vb.add(BorderLayout.CENTER,scroll2);
der Keylistener:
Code:
  public class vbkl implements KeyListener {
    public void keyPressed(KeyEvent ke) {
      if(vb.isVisible()) {
        switch(ke.getKeyCode()) {
          case KeyEvent.VK_F11: vollbild(); break;
          
          case irgendwas für Strg+n: speicherfrage(); neu(); break;
          
          default: break;
        }
      }
    }
    public void keyTyped(KeyEvent ke) {
    }
    public void keyReleased(KeyEvent ke) {
    }
  }
vollbild() -methode:
Code:
  public void vollbild() {
    if(vb.isVisible()) {
      vb.setVisible(false);
      textfeld.setText(textfeld2.getText());
    } else {
      vb.setVisible(true);
      textfeld2.setText(textfeld.getText());
    }
  }
textfeld ist das textfeld des hauptfensters, textfeld2 das des JWindows für die Vollbildansicht.
die Tastaturkürzel der Menüs im Hauptfenster werden mit setAccelerator(KeyStroke.getKeyStroke('N',Event.CTRL_MASK)); eingerichtet.
 
Werbung:
Okay. Sollte folgendermaßen funktionieren:
Code:
public class vbkl implements KeyListener {
	public void keyPressed(KeyEvent ke) {
		if(vb.isVisible()) {
			switch(ke.getKeyCode()) {
				case KeyEvent.VK_F11:
					vollbild();
					break;
          
				case VK_N:
					if(ke.isControlDown())
					{
						speicherfrage();
						neu();
						break;
					}
          
				default: break;
			}
		}
	}

	public void keyTyped(KeyEvent ke) { }
	public void keyReleased(KeyEvent ke) { }
}
Hab den Code auch noch ein wenig eingerückt ;)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben