Announcement

Collapse
No announcement yet.

Jlist und Zugriffstaste (shortcut, Accelerator)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Jlist und Zugriffstaste (shortcut, Accelerator)

    Hallo,

    ich habe eine JList in einem JScrollPane-Container, dazu ein JLabel.
    Nun soll per Tastatur der Fokus auf die Liste gesetzt werden können, so wie man das z.B. bei JTextField mit der Methode setFocusAccelerator(char) machen kann.

    Suche im Internet und im Forum ergab leider bislang nix Verwertbares, das muss aber doch möglich sein - oder?

    Vielen Dank schon mal und
    Gruß vom Knut (Java-Neuling)

  • #2
    http://java.sun.com/docs/books/tutor...eybinding.html

    könnte das sein, was du meinst.
    Christian

    Comment


    • #3
      Hallo Christian,

      danke für die schnelle Antwort.
      Ja, das führt in die richtige Richtung, allerdings habe ich im Moment noch ein Verständnisproblem: Auf welche Komponente muss ich z.B. den KeyListener anwenden? Auf den äußersten Container? Der hat aber nie den Focus...

      Von C++ kenne ich TForm->KeyPreview = true. Gibt's sowas ähnliches auch bei Java-Frames? Ich kann nix finden...

      Gruß Knut

      Comment


      • #4
        Von C++ kenne ich TForm->KeyPreview = true
        Leider nicht....

        ...auf die JList
        Christian

        Comment


        • #5
          Hallo Christian,

          wenn ich den KeyListener an JList binde, reagiert er nur, wenn JList den Fokus hat (hätte ich auch so gedacht und habe es mit dem Debugger überprüft).

          Ich will ja aber gerade, dass beim Betätigen von Alt-(irgendwas) und unabhängig vom fokussierten Control zu diesem Moment der Fokus auf die Liste gesetzt wird. Vielleicht habe ich mich bisher noch nicht klar genug ausgedrückt.

          Eine Lösung wäre natürlich, allen (anderen) Controls einen KeyListener zu spendieren, der auf Alt-(irgendwas) reagiert und den Fokus auf die Liste setzt. Aber das ist sowas von unelegant... ;-)

          Gruß Knut

          Comment


          • #6
            hmmm, dann würde mir nur noch einfallen, alles in einen JPanel zu packen und dem den Listener zu geben

            ist nicht so schön wie beim C++Builder.....dafür aber fast genau so gut und kostenlos
            Christian

            Comment


            • #7
              Leider nicht die Lösung: weder JFrame (der äußerste Container) als auch JContentPanel (der nachgeordnete, in dem alle Controls verankert sind) reagieren auf einen KeyListener.

              Trotzdem zunächst vielen Dank für's Mitdenken, ich forsche weiter...

              Gruß Knut

              Comment


              • #8
                Das Panel reagiert nicht auf den Event, weil es nicht focusable ist.....das kann man setzen...neulich hatte ich eine Lösung dafür gefunden....
                Christian

                Comment


                • #9
                  Code:
                  jContentPane.setFocusable(true);
                  Immerhin: das löst das Problem nach dem Start (wenn noch kein anderes Control den Fokus hat). Ist das aber geschehen: Essig!

                  In der Dokumentation stand ja eigentlich, dass der Root-Container alle Events zuerst erhält.

                  Naja, dann wohl doch allen Controls einen entsprechenden KeyListener verpassen (bis eine bessere Lösung auftaucht) - wozu gibt's Schleifen?

                  Gruß Knut
                  Zuletzt editiert von Knut Lohse; 02.11.2009, 13:24.

                  Comment

                  Working...
                  X