作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在 JFrame
中嵌入了一个 JPanel
。 JPanel
被添加到BorderLayout
的CENTER
。我正在使用以下代码对其进行绘制,但 MouseEvent
的 getX()
和 getY()
似乎偏移了实际坐标。为什么?
相关代码是:-
private Image backBuffer = createImage(getWidth(), getHeight());
public void mouseDragged(MouseEvent e) {
//System.out.println("Canvas.mouseDragged()");
Graphics2D g2d = (Graphics2D) backBuffer.getGraphics();
int x = e.getX(), y = e.getY();
if(lastCoord == null) {
g2d.drawRect(x, y, 0, 0);
} else {
g2d.drawLine(lastCoord[0], lastCoord[1], x, y);
}
lastCoord = new Integer[]{x, y};
repaint();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D graphics2D = (Graphics2D) g;
graphics2D.setColor(Color.black);
graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
graphics2D.drawImage(backBuffer, 0, 0, null);
}
最佳答案
也许您已将鼠标监听器添加到 JFrame(而不是面板),因此 getX 和 getY 值是相对于 JFrame 的。然后偏移量是 JFrame 边框和上标题栏。
关于java - 为什么MouseEvent的getX() getY() 好像和真实坐标有偏移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6040011/
在引用此文档pressable docs之后,我将Pressable用于按钮 现在,我想向按钮添加波纹效果,但是它无法正常工作。 Button 如果按钮具有
在 C# 中,我想制作“智能”枚举,这在 Java 中是可能的,其中有更多信息附加到枚举值,而不仅仅是底层 int。我偶然发现了一个创建类(而不是枚举)的方案,如以下简单示例所示: public se
当执行 git stash 时,会创建 2 个提交。一个被 stash ref 引用并且有 2 个父提交。一位 parent 是我们 stash 地点的索引。另一方拥有我们 stash 的实际内容。
我是一名优秀的程序员,十分优秀!