当前位置: 首页 > 知识库问答 >
问题:

矩形出现在不应该[关闭]的地方

艾骏喆
2023-03-14

我试图编写一个Java应用程序,在该应用程序中我可以在图像(JLabel)上绘制矩形。问题是矩形没有出现在它应该出现的地方。它从屏幕的左上角开始,而不是带有图像的组件…

我得到起点的x和y坐标,如下所示:

public void mouseClicked(MouseEvent e) {
    System.out.println("X:"+e.getX()+"Y:"+e.getY());
}

当鼠标被拖动时,我得到结尾x,y,并调用repaint:

public void mouseDragged(MouseEvent e) {
        if(e.getSource().equals(label)) {
            System.out.println("X:"+e.getX()+"Y:"+e.getY());
            endX = e.getX();
            endY = e.getY();
            repaint();
        }
    }
label.addMouseListener(this);
label.addMouseMotionListener(this);

共有1个答案

习和通
2023-03-14

那么如何使它相对于标签得到X和Y呢?不是窗户?

在我看来,你好像是在往窗户上加老鼠药。

将MouseListener添加到标签中,鼠标点将相对于标签。

 类似资料:
  • 问题内容: 我应该负责关闭(或或什至),还是应该将其留给容器? 问题答案: 您确实不需要这样做。 经验法则:如果您没有使用自己创建/打开它,则不需要自己关闭它。例如,如果它是一个,那么您显然需要自己关闭它。 有些人仍然这样做的原因仅仅是为了确保不再将任何内容写入响应主体。如果发生这种情况,则将日志中导致,但这不会影响客户端,因此客户端仍会获得正确的响应。这也是一种更容易的调试,可以发现请求-响应链

  • 我有一个问题,也许可以用计算机屏幕上的窗口来最好地说明:创建另一个尽可能大的窗口,不与任何现有窗口重叠。 换句话说:在有限表面(一张纸或一块屏幕)上给定一组N个矩形,找到可以安装在这些矩形之间的最大矩形。(坐标可以是任意的,因此位图在这里不是可行的解决方案。 下面的照片显示了三个矩形(黑色)和最大的矩形(红色)。 http://www.irstafoto.se/blogmtrl/rectangle

  • 问题内容: 我使用a 将字符串转换为可以上传到SFTP服务器的文件(需要流)。事后结束这一点有什么意义吗?据我在源代码中看到的,它只是将字符串设置为… 我可以这样做,但是由于将close方法标记为throw,并且我只需要将其包装在try catch中,代码最终看起来比可能需要的可怕得多。 问题答案: 如果您知道要处理的是您将要扔掉的产品,那么我看不出有什么理由要关闭它。我无法想象关闭它后会保留对它

  • 我计划为一个游戏的标记(PIN)建立一个在线地图,但我无法设置标记的正确纬度。 原始地图是一个2048*2048px的正方形 然后我得到了标记(成千上万) 地图坐标由0到100之间的x,y符号设置。0,0是地图的左上角,100,100是地图的右下角。x=50,y=50表示纬度=0°,lng=0°(图片中心)。 要将我的符号转换为经度,我使用这个JS函数,它工作得很好: 但对于纬度,它不起作用,因为

  • 我试图在现有画布中的特定框顶部添加一些红色矩形,与预期结果图像完全相同,但它们根本没有出现,因为我的代码显示了部署应用程序时当前不希望出现的结果。我的代码是在顶行和底行分别创建4个矩形,但我只想将其添加到框2-6的顶部,但我知道需要为框1顶部的红色矩形添加额外的代码 activity_main.xml MainActivity.java

  • 问题内容: 我设法实现了这种效果但是我对标记并不满意。另外,在IE10/11中有一个奇怪的错误,在您调整窗口大小时会显示1px的间隙。 还有其他方法吗?或者也许在IE中修复此问题。 编辑 圆不能使用边框,它应该是透明的。 问题答案: 您可以使用单个元素(加上伪元素)来完成此操作,而伪元素会创建圆,而父元素将背景用作背景。