gpt4 book ai didi

java - 在监听器方法中使用 GC

转载 作者:行者123 更新时间:2023-11-30 03:14:29 25 4
gpt4 key购买 nike

我使用this创建了一个自定义 View 教程。我可以在 paintControl() 中画出我想要的一切方法。我想做的,就是拥有一个MouseMoveListener除了我的PaintListener ,它应该在鼠标悬停时绘制一些附加内容:

@Override
public void createPartControl(Composite parent) {

canvas = new Canvas(parent, SWT.NONE);
canvas.addPaintListener(new PaintListener() {
public void paintControl(PaintEvent e) {
// draw something
}
});

canvas.addMouseMoveListener(new MouseMoveListener() {
@Override
public void mouseMove(MouseEvent e) {
system.out.println(e.x + ", e.y");
// draw something
}
});
}

是否可以使用GC里面mouseMove()方法,除了在paintControl()中创建的现有形状之外还绘制形状?我尝试设置GC作为实例变量并将其设置为 paintControl()mouseOver() 中重复使用它但不幸的是它是null在这一点上。

最佳答案

正如 @Kuba 所说,您无法在 PaintEvent 之外的 GC 上进行绘制。

要重新绘制 Canvas ,请从鼠标事件中调用其 redraw 方法,如下所示:

canvas.addMouseMoveListener( new MouseMoveListener() {
@Override
public void mouseMove( MouseEvent event ) {
canvas.redraw();
}
} );

关于java - 在监听器方法中使用 GC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32950103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com