carookee - group communication for you
Home / JavaForum / Swing + AWT
Infos   |   Features   |   Gold-Edition   |   Kundenservice   
java
  Übersicht
  Forum
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
  Mitglieder
LOGIN





· Passwort vergessen
· Kostenlos anmelden
  Information
  Demo
  Features
  Im Vergleich
  Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
  Kundenservice
  Impressum
  Datenschutz
  AGB
Status
4.747 User online
1 User eingeloggt
 

Beiträge
   Antworten     Neuer Beitrag    

Beitrag 1459 von 1460 (100%) |<   <   >   >|

Autor Michael S.
Datum 22.10.01, 18:04
Betreff JTable


Hallo Leute!

Ich habe folgendes Problem beim Auslesen eines JTables.

Zum Verständnis:
Ich möchte es dem Benutzer ermöglichen eine Tabelle in einem Dialog dynamisch zu verändern was Zeilen-, Spaltenanzahl betrifft. Dies habe ich mit folgendem Code realisiert.

public void adjustmentValueChanged(AdjustmentEvent event)
{
    if (event.getSource() == ColScrollBar)
    {
        String temp = "";
        ColTextField.setText(temp.valueOf(999-ColScrollBar.getValue()));
        DefaultTableModel DTM = (DefaultTableModel)Tabelle.getModel();
        DTM.setColumnCount(999-ColScrollBar.getValue());
        Tabelle.setModel(DTM);
    }
    if (event.getSource() == RowScrollBar)
    {
        String temp = "";
        RowTextField.setText(temp.valueOf(999-RowScrollBar.getValue()));
        DefaultTableModel DTM = (DefaultTableModel)Tabelle.getModel();
        DTM.setRowCount(999-RowScrollBar.getValue());
        Tabelle.setModel(DTM);
    }
}


Eigentliches Problem:
Die Tabelle ist beim Aufrufen des Dialogs mit 4x4 Zellen initialisiert. Wenn der Benutzer nun "OK" anklickt soll die Tabelle mit folgendem Code Zelle für Zelle ausgelesen werden.

public String getText()
{
    int x = 999-ColScrollBar.getValue();
    int y = 999-RowScrollBar.getValue();
    StringBuffer strBuf = new StringBuffer();
    
    strBuf.append("<table>\n");
    for (int i=0; i<y; ++i)
    {
        strBuf.append(" <tr>\n");
        for (int l=0; l<x; ++l)
        {
            String value = (String)Tabelle.getValueAt(l,i);
            if (value == null)
            {
                value = "";
            }
            strBuf.append(" <td>"+value+"</td>\n");
        }
        strBuf.append(" </tr>\n");
    }
    strBuf.append("</table>");
    
    return strBuf.toString();
}


So. Das funktioniert, solange die Tabelle gleich viele Spalten wie Zeilen hat. Hat sie jedoch mehr Spalten als Zeilen oder umgekehrt erhalte ich eine

ArrayIndexOutOfBoundsException: 4 >= 4

sobald er auf die 5. Zelle der ersten Zeile oder auf die erste Zelle der 5. Zeile zugreifen möchte.

Was läuft da falsch? :-(

Vielen Dank im Voraus.

mfg.
Morpheus!


Diskussionsverlauf:
JTable
    Re: JTable

 Auf diesen Beitrag antworten
 Neuen Beitrag verfassen


|<   <   >   >|

                                                                                                                                                                                                                           

Impressum  · Datenschutz  · AGB  · Infos  · Presse
Ein modernes Forum: teamturn.com