Edit-/Kontextmenü

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Edit-/Kontextmenü

    Hallo Forum,

    ich habe ein Edit-/Kontextmenü mit cut/copy/paste über das DefaultEditorKit erstellt, was soweit auch ganz gut funktioniert. Nun wollte ich noch "Alles auswählen" hinzufügen, allerdings ist javax.swing.text.DefaultEditorKit.SelectAllAction() Package-private. Also kein Problem - denk ich mir - schreib 'ne eigene Methode mit <component>.selectAll() - aber wie bekomm ich (bzw. die JVM) denn raus, wo der Cursor gerade ist?
    Die Anwendung ist mit NetBeans unter "FreeDesign" erstellt worden. (ActionListener sind anonyme Klassen die Methoden aufrufen.)

    Quellcode

    1. jMenuItem4.setFont(new java.awt.Font("Lucida Sans Unicode", 0, 12));
    2. jMenuItem4.setMnemonic('S');
    3. jMenuItem4.setAccelerator(
    4. javax.swing.KeyStroke.getKeyStroke(
    5. java.awt.event.KeyEvent.VK_A,
    6. java.awt.event.KeyEvent.CTRL_MASK
    7. )
    8. );
    9. jMenuItem4.setText("Alles ausw\u00e4hlen");
    10. jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
    11. public void actionPerformed(java.awt.event.ActionEvent evt) {
    12. selAll(evt);
    13. }
    14. });
    Alles anzeigen

    Quellcode

    1. private void selAll(java.awt.event.ActionEvent evt) {
    2. ???.selectAll();
    3. }


    ...und gut wäre auch noch eine Möglichkeit für "Löschen". Ich kann zu beiden einfach nichts finden, weil ich auch nich richtig weiß, wonach ich suchen muß. Das ist doch bestimmt schon tausendfach gemacht worden...
    No RISC, no fun! :D
  • Ich stell die Frage mal anders: Gibt es eine Methode um festzustellen, in welchem jText<irgendwas> sich die Einfügemarke (also diese blinkende Cursordingens) befindet und wenn ja welche?
    Ich bin schon zwei Tage am suchen kann aber nichts finden - wäre also nett, wenn mir das jemand verraten könnte, der sowas schon mal gemacht hat.
    No RISC, no fun! :D
  • Hi, hab dazu folgendes gefunden:

    Auf die aktuelle Cursorposition innerhalb des Textes kann mit den folgenden Methoden getCaretPosition und setCaretPosition zugegriffen werden:

    public int getCaretPosition()
    public void setCaretPosition(int pos)
    public void moveCaretPosition(int pos)


    http://www-sst.informatik.tu-cottbus.de/~an/Books/HJP/html/k100238.html#ixa102575