*Markus: JTable - Zelle automatisch selektieren

Beitrag lesen

Hallo,

danke, das hat wunderbar geklappt. Ich hätte allerdings noch eine weitere Frage, die auch gleich dazu passt:
Ich habe für meine Tabelle ein eigenes Model geschrieben, das von DefaultTableModel erbt.

  
import java.util.regex.Pattern;  
  
import javax.swing.table.DefaultTableModel;  
  
public class TelefonTableModel extends DefaultTableModel {  
  
 @Override  
 public void setValueAt(Object aValue, int row, int column)  {  
  String wert = aValue.toString().trim();  
  if (column == 0 && Pattern.matches("^\\+?\\d+?", wert) )  
      super.setValueAt(aValue, row, column);  
  else if (column == 1)  
      super.setValueAt(aValue, row, column);  
  else  
   super.setValueAt("", row, column);  
 }  
}  

Die überschriebene setValueAt-Methode wird richtig aufgerufen, nur weiß ich dummerweise nicht wo sie aufgerufen wird? In meiner GUI-Klasse implementiere ich den TableModelListener und die dazu gehörenden Methode

  
 public void tableChanged(TableModelEvent e) {  
  
 }  

..nur steht in dieser Methode der setValueAt gar nicht, aber dennoch werden die Daten gehalten und auch der reguläre Ausdruck wird richtig angewendet, was mich zu dem Schluss bringt, dass die Methode intern abgerufen wird.
Mein Problem ist aber, dass ich bei falscher Eingabe eine Exception werfen will, aber wenn ich die Methode nicht "per Hand" aufrufe, wie kann ich dann die Exception fangen?

Markus

--
http://www.apostrophitis.at
六 7東曲 人港ラ