gpt4 book ai didi

Java:大量的MouseListeners与像素/网格划分相比如何?

转载 作者:行者123 更新时间:2023-11-29 03:51:34 26 4
gpt4 key购买 nike

例如,假设您有一个项目列表或一个大型组件网格,并且您想要实现某种悬停/滚动机制。执行此操作的简单方法是向每个组件添加一个 MouseListener 并使用 mouseEnteredmouseExited 方法。另一种方法是根据鼠标的位置确定组件,例如,您有一个 JLabel 的二维数组,您可以使用类似以下内容来确定哪个标签位于指针下方:;

private void setRolloverIndices(Point p){
this.rolloverRow = p.y / this.labelHeight;
this.rolloverCol = p.x / this.labelWidth;
}

private JLabel getRolloverLabel(){
// assume safe values
return labels[rolloverRow][rolloverCol];
}

是否值得为像素/网格计算而烦恼,或者监听器通常是否足够高效以处理许多组件?

最佳答案

同一个监听器可以添加到多个组件,并且可以使用事件的 getSource() 来触发事件的组件。或 getComponent()方法。无需根据点位置进行猜测。

关于Java:大量的MouseListeners与像素/网格划分相比如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8543677/

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