Anzeige:
Ergebnis 1 bis 5 von 5

Thema: JTable Eingabemodus ausschalten??

  1. #1
    Registrierter Benutzer
    Registriert seit
    25.10.2005
    Ort
    Hamminkeln
    Beiträge
    302

    Question JTable Eingabemodus ausschalten??

    Hallo *,

    ich habe in einer Form eine JTable, in die ein Benutzer Daten eingeben kann. So weit so gut, aber: Steht der Benutzer in einem Feld und gibt Daten ein, so wird dieses in den "Editmode" (oder ähnlich?) gesetzt. Ist die Eingabe erledigt und der Benutzer klickt auf den Übernahmebutton, so wird der Wert aus dem zurzeit im "Editmode" befindlichen Feld nicht korrekt übernommen. Wie bekomme ich es hin, das ich per Code den Editmode abschalten kann?
    (Per Hand geht es, wenn man z. B. in eine anderes Feld ausserhalb der Tabelle klickt, aber das kann man doch einem Benutzer nicht zumuten, nur damit die Daten komplett übernommen werden).
    Ich freue mich über jeden Tipp! Danke schonmal!
    Und an alle ein schönes Weihnachtsfest und einen guten Rutsch ins neu Jahr [auch wenn ihr es vielleicht schon nicht mehr lesen könnt ]
    Vereinfacht die Dinge, und ihr erleichtert euch das Leben. (Henry David Thoreau)

  2. #2
    Registrierter Benutzer
    Registriert seit
    06.04.2006
    Ort
    Eschwege
    Beiträge
    17
    ?

    wenn der benutzer das Feld mit tab oder sonstiges verlässt, wird doch der Editiermodus verlassen und die setValueAt(Object aValue, int rowIndex, int columnIndex) Methode für das TableModel aufgerufen? Ich verstehe das Problem nicht ganz. Wenn Du Daten in ein Feld eingibst, drückst Du überlicherweise "Enter" wenn du fertig bist. So mache ich das schon immer in Excel z.B. Oder Du verlässt die Zelle mit Enter um in die Nächste zu gelangen. afaik verlässt all das den Editiermodus und setzt den neuen Wert. Du musst eigentlich nichts manuell antriggern.

    Gruß,
    Martin

  3. #3
    Registrierter Benutzer
    Registriert seit
    25.10.2005
    Ort
    Hamminkeln
    Beiträge
    302
    Hi Martin,
    vielen Dank für deine Antwort. I.d.R. hast du selbstverständlich recht, es gibt da aber die Möglichkeit, in einem Feld der Tabell zu stehen und dann auf den Übernahmebutton zu klicken. In diesem Fall werden einige Daten abgeschnitten, ansonsten ist es so wie du geschrieben hast. Ich würde nur gern bei Klicken des Übernhamebuttons den Editiermodus ausschalten können, und dieses dann auf die Tabelle anwenden.
    Vereinfacht die Dinge, und ihr erleichtert euch das Leben. (Henry David Thoreau)

  4. #4
    Registrierter Benutzer
    Registriert seit
    06.04.2006
    Ort
    Eschwege
    Beiträge
    17
    Du sprichst von "dem Übernahmebutton". Der ist doch von dir sicherlich selbst implementiert worden. Wenn der Benutzer mit der Maus auf diesen Button klickt, müsste das längst einen focuslost für die Zelle hervorgerufen- und den Editiermodus beendet haben, als würde er TAB oder Enter drücken. Deswegen verstehe ich nicht, wieso du das programmatisch machen willst. In dem Moment wo er auf übernehmen klickt, ist er doch längst aus dem Editiermodus raus? Oder befindet sich dieser Button etwa in einem eigenen CellEditor, den Du entwickelt hast? Dann ist das natürlich etwas anderes.. Dann gäbe es die Methode "boolean stopCellEditing()", die Du vielleicht auf deinem Cell Editor aufrufen solltest. Vielleicht hilft das?

    Gruß

  5. #5
    Registrierter Benutzer
    Registriert seit
    25.10.2005
    Ort
    Hamminkeln
    Beiträge
    302
    Hi Cosh,

    yep, habe ich auch so gedacht, aber wenn ich nicht wirklich mit Enter (oder Tab) die Eingabe beende, dann wird die Tabelle nicht korrekt ausgelesen.
    Ich werde es aber mal mit dem von dir vorgeschlagenem Weg versuchen, und über die einzelnen Zellen (Zeilen) laufen und die angegebene Methode aufrufen. Vielen Dank.

    ------
    Hatte kurz Zeit, und ich kann sagen, auch das funzt! Vielen Dank! :-))))
    ------
    Geändert von Jor (03-01-2007 um 15:41 Uhr)
    Vereinfacht die Dinge, und ihr erleichtert euch das Leben. (Henry David Thoreau)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •