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.
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.
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.
Code:
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.