我需要用鼠标在 JPanel 中画一条线,单击面板中的两个点。第一次单击将是该行的开头,第二次单击将是该行的结尾。
我有这样的东西:
private void jPanel1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
Graphics g = this.jPanel1.getGraphics();
int x = evt.getX();
int y = evt.getY();
g.drawLine(x, y, x, y);
}
但它只绘制像素。 Line with coordinates 我需要这样的东西,但只需用鼠标点击来绘制它。
最佳答案
您正在从 (x, y) 到 (x, y) 绘制一条线,这就是为什么您只得到一个像素。您需要捕获第一次单击的坐标,然后在第二次单击时绘制线条。
private int startX = -1;
private int startY = -1;
private void jPanel1MouseClicked(java.awt.event.MouseEvent evt) {
if (startX == -1 && startY == -1) {
startX = evt.getX();
startY = evt.getY();
} else {
Graphics g = this.jPanel1.getGraphics();
g.drawLine(startX, startY,
evt.getX(), evt.getY());
// reset the start point
startX = -1;
startY = -1;
}
}
关于java - 在 NetBeans 上的 JPanel 中用鼠标绘制线条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32991378/