Bei Doppelklick Zeileninhalt einer JTable abfragen

invisibleW

Grünschnabel
Hallo zusammen,
ich werd hier bald total kirre:
Ich habe eine JTable geschrieben, alles wunderbar. Nun soll aber, wenn man auf eine Zeile doppelklickt, der Inhalt dieser Zeile (bzw. der ersten Spalte der Zeile) ausgeprintelt werden (bzw. später mehr damit gemacht werden, aber das ist derzeit nicht wichtig - ich brauch erst mal den Namen ;))

Ich hab direkt in meine Methode, wo ich das JPanel mitsamt der JScrollbar und JTable erstell, n MouseListener eingefügt. Mein Code an der Stelle:

Code:
jPanel.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e) {
        if (e.getClickCount()==2) 
        {
            int row = table.getSelectedRow();
            String sFeatureString = (String) table.getValueAt(row, 0);
            System.out.println(sFeatureString);
        }
    } 
});

Kann mir jemand sagen, warum das so nicht passt und nix passiert?

Vielen Dank im Voraus
invisibleW
 
Hi invisibleW
also Warum da nix passiert ist vermutlich deshalb, dass Du das JPanel mit einem MouseListener beglückt hast. Du willst aber etwas vom JTable ;-)
Die Events der Mouse werden normalerweise direkt vom Element geholt welches die Mouse "berührt" aber nicht die die darunter liegen.
Versuche das doch, wenn möglich, den Mouselistener am JTable zu registrieren.

viel Glück

Takidoso

Nachtrag:
Es könnte sein, dass es dann vielleicht auch nicht geht, da Listener im Java-Framework per definition nicht die Aufrufreinfolge garantieren. Soll heißen, wenn Du pech hast wird erst Dein Listener aufgerufen und danach erst die Zeile selektiert, welche irgendwo in den Tiefen von Swing die Slektion ermöglichen dürften.
Vielleicht müsste man die Sache dann etwas anders und zwar irgendwie über das SelectionModel versuchen... oder über den CellEditor-aktivierungs Mechanismus .... aber probiere es erst mal so aus wie oben.
 
Zuletzt bearbeitet:
Zurück