# mit Java2D Markierung über JTable zeichnen und diese bewegen



## hupfdule (17. Aug 2006)

Hi,

ich habe eine JTable, mit der ich Drag n Drop unterstütze. Um den Benutzer dabei visuell zu unterstützen, zeichne ich eine Linie in die JTable an die Stelle, wo das Objekt eingefügt würde. 



```
Rectangle rect= tt1.getCellRect(row, col, true);
        Rectangle2D marker= new Rectangle2D.Double(rect.getX()-1, rect.getY(), 2, rect.getHeight());
        
        if (marker.equals(lastMarker)){
            return lastMarker;
        }else{
            tt1.repaint();
            Graphics2D g2= (Graphics2D) tt1.getGraphics();            
            g2.fill(marker);
            return marker;
        }
```

Das Objekt lastMarker existiert, um den Marker nicht neu zu zeichnen, wenn es nicht nötig ist, da sich die Drop Position nicht verändert hat.

Mein Problem ist das tt1.repaint(). (tt1 ist die JTable)
Dieser repaint löscht jedes mal auch mein Rectangle. Es ist für ein paar Millisekunden zu sehen und verschwindet wieder. Ich vermute, dass das daher kommt, dass das tatsächliche Neuzeichnen erst stattfindet, _nachdem_ mein Rectangle bereits gezeichnet wurde. 

Nun würde ich gern wissen, wie ich das verhindern kann. Irgendwelche Ideen? Das repaint soll also nur dann stattfinden, wenn ein neuer Marker gezeichnet wird, dann aber _bevor_ der Marker gezeichnet wird, damit er nicht gleich wieder verschwindet.


----------



## hupfdule (21. Aug 2006)

*push* 

Keiner eine Idee? Oder hab ich mein Problem zu schlecht erklärt?


----------



## hupfdule (23. Aug 2006)

So, nu hab ich es endlich. Das Zeichnen des Markers muss in der paint(Graphics) Methode der JTable erfolgen. Habe diese also abgleitet und dort den Marker gezeichnet.


----------

