- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是一个很长的问题。我已尽力使其更加简洁,但我认为您需要所有信息来提供帮助。
总结如下:我正在 try catch 连续点击作为端点。我将在这些点之间绘制 line2D 对象。我有一个监听器,它将点击事件中的 x 和 y 值发送到辅助类。我永远不会有超过两个点,因此辅助类只有 firstPoint 和 secondaryPoint 成员。我获得点击并使用 evt.getX() 和 evt.getY() 将坐标发送到帮助程序类。帮助器创建点,但firstPoint 最终具有与secondPoint 相同的坐标。我有关所发生情况的详细信息可以在代码块下方找到。
这是我的鼠标单击处理程序中的代码:
public class Dashboard extends javax.swing.JFrame {
public static ClickMaster myClicks = new ClickMaster();
public static boolean drawing = false;
private MyPoint firstPoint = new MyPoint();
private MyPoint secondPoint = new MyPoint();
。。.
private void MyDrawingPanelMouseClicked(java.awt.event.MouseEvent evt) {
if (firstPoint.getPointType().equals(MyPoint.PointType.NULL)) {
drawing = !drawing;
firstPoint = myClicks.parseClick(evt.getX(), evt.getY(), drawing);
} else if (drawing){
drawing = !drawing;
secondPoint = myClicks.parseClick(evt.getX(), evt.getY(), drawing);
myClicks.parsePoints(firstPoint, secondPoint);
}
}
这是返回点的辅助类:
public class ClickMaster {
MyPoint anyPoint = new MyPoint();
public ClickMaster() {
anyPoint.setPointType(MyPoint.PointType.NULL);
}
public MyPoint parseClick(double x, double y, boolean firstClick) {
if (firstClick) {
anyPoint.setPointType(MyPoint.PointType.ANCHOR);
} else {
anyPoint.setPointType(MyPoint.PointType.END);
}
anyPoint.setX(x);
anyPoint.setY(y);
return anyPoint;
}
这是我对 Point2D 对象的实现,以防相关:
public class MyPoint extends Point2D {
public enum PointType {
ANCHOR, END, SOLO, NULL
};
double x;
double y;
PointType pointType;
public MyPoint(PointType pType, double x, double y) {
this.x = x;
this.y = y;
this.pointType = pType;
}
public MyPoint() {
this.x = 0.0;
this.y = 0.0;
this.pointType = PointType.NULL;
}
+ 正如您所期望的标准 getter/setter。
调试表明
firstPoint = myClicks.parseClick(firstX, firstY, drawing);
产生具有鼠标事件的 x 和 y 值的点。这是预期的结果。
同样,
secondPoint = myClicks.parseClick(evt.getX(), evt.getY(), drawing);
生成具有第二次单击的 x 和 y 值的点。也在意料之中。
但是,当我打电话时
myClicks.parsePoints(firstPoint, secondPoint);
我看到firstPoint 和secondPoint 具有相同的x,y 值。
我不确定,但我相信这是因为firstPoint和secondPoint都从鼠标evt获取它们的x和y值。我认为我需要将 x 和 y 的 double 类型值放入 firstPoint 和 secondaryPoint,而不是引用 getX() 和 getY() 从鼠标事件返回的 double 值。
我只是不知道如何实现它。
此外,如果有更好的方法来捕获连续点击并将其转换为形状的端点,我欢迎您提供反馈。
最佳答案
实际上,你的问题是anyPoint。由于您只有一个 ClickMaster 实例,并且 anyPoint 仅初始化一次,因此无论您调用 parseClick 多少次,您都会返回对同一对象的引用。 ParseClick 每次调用时都需要创建一个新的 MyPoint 并返回它。
关于java - 在鼠标单击事件处理程序中重新使用 getX() getY(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11110145/
我正在学习自己的 Flutter GetX 并坚持了一点。实际上我想知道为什么当我再次访问该页面/对话框时不会调用 GetX Controlled 的 onInit 方法。 假设我有一个简单的Text
当我发现自己多次调用同一个 getter 方法时,这应该被认为是一个问题吗? [总是] 分配给局部变量并只调用一次是否更好? 我确定答案当然是“视情况而定”。 我更关心更简单的情况,其中 getter
我可以使用 GetX 看到导航器堆栈吗?我查看了文档,但找不到有关此主题的任何内容。我通常会关闭例如这样的对话框 Get.until((route) => !Get.isDialogOpen); 但我
我想制作一个密码文本框,其中的内容可见性可以通过后缀图标来控制。 代码可能是这样的: import 'package:flutter/material.dart'; import 'package:g
我想使用 Get 包将多个数据从一个屏幕传递到另一个屏幕。 Get.to(Second(), arguments: ["First data", "Second data"]); 最佳答案 步骤:1
这是getX来自的vector.js var Vector = (function () { function Vector(pX, pY) { this.setX(pX);
让我们假设一个 ImageView,当它被添加到我的布局(相对布局)时,没有缩放(比例为 1)。如果我调用 getX(),它会返回正确的 X 位置。 但是,如果我现在用 2 调用 setScaleX(
我有一个这样的列表: List countries = [ Country(name: 'United States', border: ['Mexico', 'Canada']),
我正在为我的新项目尝试 GetX,并尝试使用受启发的 AnimationController this comment . Tween -> blur & spread & AnimationCont
应用程序一直卡在启动画面上的原因是什么?我使用 getx 状态管理。如果 authToken 不为空,它应该转到主页。但是 Controller 类中的 onInit 没有调用。 void main(
我隔离了一些繁重的计算,然后在接收到结果的列表时运行一个 for 循环以将它们添加到带有 items var items = [].obs;的可观察列表中; 问题是我正在尝试从启动 Controlle
我正在使用 Get.snackbar() 来显示连接到 API 的过程。我不明白如何以编程方式关闭 snackbar ?我有以下代码: @override Future getImportantD
我正在尝试在 ListView 中无限滚动。我正在从 API 获取数据。我正在使用 getx。我的 ListView 总是在滚动结束时重建。我找不到我做错的地方。 This is what i try
我使用 flutter 有一段时间了,最近使用 Get 来实现状态管理。 我在打开加载对话框 1 和消息对话框时遇到问题。然后我想关闭加载对话框,但消息对话框是保持关闭的对话框。 import '
我正在寻找如何在 GetX 的最佳实践中处理表单和验证的示例? 有没有很好的例子,或者有人可以向我展示我们如何最好地做到这一点的例子? 最佳答案 GetX 不是所有问题的解决方案,但它有一些实用方法可
我正在尝试将旧代码转换为新代码语法。我对 RxList 有疑问。 所以我改变了postModel.assign(postDetail); 但是在我的 news_detail 页面中我如何获取值(val
我想在单击图 block 时更改 ListTile 文本的颜色,我该怎么做,而且颜色应该只针对特定的选定图 block 更改。我的方法如下: ListView.builder( ite
在下面的代码中,为什么首先执行 getX() 方法而不是构造函数: public class ConsructorQuestion { int x = getX(); // same thi
我正在尝试将旧代码转换为新代码语法。我对 RxList 有疑问。 所以我改变了postModel.assign(postDetail); 但是在我的 news_detail 页面中我如何获取值(val
我想在单击图 block 时更改 ListTile 文本的颜色,我该怎么做,而且颜色应该只针对特定的选定图 block 更改。我的方法如下: ListView.builder( ite
我是一名优秀的程序员,十分优秀!