AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [java] Editiervorgang in jTable kontrollieren
Thema durchsuchen
Ansicht
Themen-Optionen

[java] Editiervorgang in jTable kontrollieren

Ein Thema von jfheins · begonnen am 19. Mär 2007 · letzter Beitrag vom 20. Mär 2007
Antwort Antwort
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#1

[java] Editiervorgang in jTable kontrollieren

  Alt 19. Mär 2007, 15:57
Hallo,
Ich muss darf euch wieder nmit eine jjava-Frage quaelen

Nachdem ich meine terminverwaltung einigermassen ferig bejommen habe, gibt es noch folgendes Problem:

Ich benutze eine jTable, um gewisse Eintraege bearbeitbar zu machen. Nun duerfen diese nicht ueber 300 Zeichen lang sein. Ausserdem moechte ich Datei und Tabelle synchron halten, also wird sofort nachm editiervorgang in die Datei geschrieben, und dann die Datei neu eingelesen.
Jetzt ist die Frage, was machen, wenn der (dummme) User mehr eingibt, als er darf? Ich moechte das gerne abfangen, ihn auf seine Dummheit hinweisen und dann seinen Cursor wieder in die Zelle setzen.

Folgenden Code habe ich probiert:
Code:
NotesModel().addTableModelListener(new TableModelListener()
        {
            public void tableChanged(TableModelEvent evt)
            {
                if (evt.getType() == evt.UPDATE)
                {
                    UpdateNotesFile(evt.getFirstRow());
                }
            }
        });

protected void UpdateNotesFile(int index)
    {
        if (((String) NotesModel().getValueAt(index, 1)).length() > 300)
        {
            NotesTable.editCellAt(NotesTable.getSelectedRow(), NotesTable.getSelectedColumn());
            //NotesTable.getSelectionModel().setSelectionInterval(index, index);
            JOptionPane.showMessageDialog(null, 'Sorry, you cannot exeed 300 characters.\nYou wrote: ' + ((String) NotesModel().getValueAt(index, 1)).length(), 'Error during update', JOptionPane.ERROR_MESSAGE);
        }
        else
        {
            // Datei - update
        }
    }
(" durch ' ersetzt)

NotesTable ist die Tabelle (jTable) und NotesModel() liefert das model zurueck(nach DefaultTableModel gecasted)

Das Problem ist, dass das editCellAt(); wohl wieder ein Updata ausloest, woraufhin der User ununterbrochen die Meldung sieht, dass er zuviel eingegeben hat.

Wenn ich das editCellAt nur einmal aufrufe (mittels globaem Boolean Flag), dann wird die Zelle nur fokussiert, ich moechte sie aber beriet zum editieren haben.

Ideen?

P.S. java ist vorgeschrieben, und da Programm steht auch schon, also nix gegen Java bitte
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: [java] Editiervorgang in jTable kontrollieren

  Alt 20. Mär 2007, 19:52
keiner ?

Ich habs inzwischen mit nem Inputdialog gelöst, ist aber nicht so schön ...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz