小编典典
基本上,因为reapint(int, int)可以使用而不是使用repaint()
private void moveVertex(int x1, int y1) {
int OFFSET = 1;
if ((x != x1) || (y != y1)) {
x = x1 - 10;
y = y1 - 10;
repaint();
}
}
这将确保整个组件被重新粉刷。
虽然我不反对使用repaint(int, int),因为您的绘画过程相对简单,但是在现阶段它不会为您带来很多好处
更新了其他示例
如果我理解,您希望能够移动单个节点并使该
行保持连接状态。
虽然可以在可用的代码中实现,但更简单的解决方法是利用2D Graphics ShapeAPI,这提供了许多真正有用的功能,包括确定点是否位于给定的形状内。
这也意味着您无需跟踪大量参数,而是获得一个自包含的对象,该对象只知道应如何绘制…
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.Mou