tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
689
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    YelloW_22 Tutorials.de Gastzugang
    anscheinend gibts ne interne Funktion der JTable die, wenn man Enter drückt, die Selektion der Tabelle um eins nach unten setzt.
    Wie kann ich das ausschalten?
    Hab schon versucht die selektion dann manuell wieder hoch zu setzten, geht zwar, aber is halt optisch ganz doof weil sie erst nach unten un dann nach oben springt.

    lg YelloW
     

  2. #2
    Avatar von miffi
    miffi miffi ist offline Mitglied Gold
    Registriert seit
    Jul 2009
    Ort
    Ravensburg (BW)
    Beiträge
    139
    Howdie.

    Witzig, habe praktisch die identische Antwort grad in einem anderen Thread gepostet:
    Hast du schon versucht, einen KeyListener hinzuzufügen, und die Enter-Eingabe per KeyEvent#consume() zu unterbinden?

    Gruß
    miffi
     
    "A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
    Douglas Adams

  3. #3
    YelloW_22 Tutorials.de Gastzugang
    Problem ist: Hab schon nen Lauscher drauf, der ENTER abbprüft. Denn ENTER soll bei mir was anderes machen, nämlich den grad durch die Maus selektierten Satz anzeigen.
     

  4. #4
    Avatar von miffi
    miffi miffi ist offline Mitglied Gold
    Registriert seit
    Jul 2009
    Ort
    Ravensburg (BW)
    Beiträge
    139
    Das macht eigentlich relativ wenig aus.
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    public void KeyReleased(KeyEvent e){
       switch(e.getKeyCode()){
          case KeyEvent.VK_ENTER:
              e.consume();          
     
              // dein code hier
     
              break;
       }
    }

    Allerdings weiß ich nicht, ob JTable standardmäßig bereits einen eigenen KeyListener implementiert, der auf bestimmte Standard-Keys für Tabellen (F2, Enter, Ctrl+c, etc.) lauscht. Einfach mal testen.

    Gruß
    miffi
     
    "A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
    Douglas Adams

  5. #5
    YelloW_22 Tutorials.de Gastzugang
    das bringt leider absolut null. Enter bewirkt weiterhin das versetzen der Selection.
    Mein code jetzt:


    else if(arg0.getKeyCode() == KeyEvent.VK_ENTER)
    {
    switch(arg0.getKeyCode())
    {
    case KeyEvent.VK_ENTER:
    arg0.consume();

    Operationen.Bearbeiten(h);

    break;
    }

    }
     

  6. #6
    Avatar von miffi
    miffi miffi ist offline Mitglied Gold
    Registriert seit
    Jul 2009
    Ort
    Ravensburg (BW)
    Beiträge
    139
    Also erstmal:
    Du hast in deinem Code jetzt doppelt gemoppelt - du prüfst jetzt den KeyCode sowohl mit deiner if-else-Kaskade als auch dem switch aus meinem Beispiel. Ich würde mich auf den switch beschränken, ist die schnellste Methode.

    @Topic:
    Hab grad was zu dem Thema gelesen.
    One has to install a disabled action for the KeyStroke in question. There is no way to remove KeyStrokes directly that a parent input map handles.
    disabled = new AbstractAction()
    {
    public boolean isEnabled() { return false; }
    public void actionPerformed(ActionEvent e) { }
    };
    // ....
    table.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(...), "none");
    table.getActionMap().put("none", disabled);

    Strictly speaking, one should also install this in the WHEN_FOCUSED input map.
    Note that if an editor component has focus, it will also possibly handle the key stroke.
    Es scheint also eher ein kompliziertes Vorgehen zu sein, was du da anschlägst. Das Stichwort lautet wohl, eine eigene Input-Map zu erstellen, bzw. die entsprechenden Werte in der vorhandenen zu überschreiben.
    Wenn es über die üblichen Swing-Verfahren nicht lösbar ist, weiß ich leider auch nicht weiter.

    Gruß und viel Erfolg
    miffi
     
    "A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
    Douglas Adams

  7. #7
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    schau mal hier:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    
    package de.tutorials.training;
     
    import java.awt.BorderLayout;
     
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;
     
    public class JTableDisableCellChangeAfterEnter extends JFrame {
     
      JTable table;
     
     
      public JTableDisableCellChangeAfterEnter() {
        super("JTableClipboardExample");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
     
        Object[][] rowData = new Object[][] { { "a1", "b1", "c1" }, { "a2", "b2", "c2" }, { "a3", "b3", "c3" } };
        Object[] columnNames = new Object[] { "a", "b", "c" };
        table = new JTable(new DefaultTableModel(rowData, columnNames));
        table.setSurrendersFocusOnKeystroke(true);
        add(new JScrollPane(table), BorderLayout.CENTER);
        pack();
        setVisible(true);
      }
     
     
      public static void main(String[] args) {
        new JTableDisableCellChangeAfterEnter();
      }
    }

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 05.06.10, 18:56
  2. Ersatz für Proxy / interne "Host-Umleitung"
    Von fanste im Forum Linux & Unix
    Antworten: 5
    Letzter Beitrag: 07.07.09, 16:40
  3. Über Webseite "interne" IP auslesen
    Von _root im Forum Java
    Antworten: 4
    Letzter Beitrag: 23.09.05, 16:17
  4. Bilder unschönes "rote Kreuz" abschalten
    Von sunflowerwoman70 im Forum HTML & XHTML
    Antworten: 7
    Letzter Beitrag: 16.09.05, 17:19
  5. Popupblocker für "interne" werbefenster
    Von Mathiz im Forum HTML & XHTML
    Antworten: 7
    Letzter Beitrag: 13.02.05, 23:20