gpt4 book ai didi

java - 如何创建响应鼠标点击的 java swing Graphic 对象?

转载 作者:行者123 更新时间:2023-12-01 15:39:48 25 4
gpt4 key购买 nike

我需要在 Canvas 的不同位置动态绘制图形元素(正方形),并且我需要监听鼠标点击以更改正方形的位置。如何向 Graphics 对象添加鼠标监听器?我必须使用其他方法吗?

int x = 0;
int y = 0;
Graphics g = getGraphics(); // get Graphics context
g.setColor(Color.red);
g.fillRect( x - 25, y - 15, 60, 30 );
g.setColor(Color.black);
g.drawRect( x - 25, y - 15, 60, 30 );
g.dispose();

最佳答案

我可能会使用 JPanel 作为形成 Canvas 的较大组件的子元素。 JPanel,因为它是 JComponent 的子类,允许您通过 addMouseListener() 添加鼠标监听器,并覆盖其 paintComponent()方法。

如果您想移动方 block ,只需重新定位 JPanel 即可。

(就此而言,如果它是正方形或矩形,您甚至不需要重写 PaintComponent,您只需通过适当调用 setBorder 和 setBackground 即可完成此操作。)

<小时/>

另一种方法是使用 JPanel 作为整个 Canvas ,重写 PaintComponent 来绘制您喜欢的任何内容,在 JPanel 上添加MouseListener,然后手动确定鼠标监听器事件是否发生在图形元素的几何形状内。

关于java - 如何创建响应鼠标点击的 java swing Graphic 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8246387/

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