gpt4 book ai didi

java - 如何获取 JComboBox 项目的屏幕坐标

转载 作者:行者123 更新时间:2023-12-02 13:12:43 26 4
gpt4 key购买 nike

我正在尝试获取 JComboBox 中项目的屏幕坐标 (x,y)。最好我想要整个边界框(x,y,宽度,高度),但主要是位置。

此信息有多种用途。单击自动化,检查列表可能遮挡的内容(或可能遮挡列表的内容),测试与显示边缘或其他可能不需要的位置的接近程度等。

我只需使用 Component.getLocationOnScreen 即可获取普通组件 (Component) 的坐标。有时我想要中心点,为此我取 getLocationOnScreen 的 x/y,然后添加 getWidthgetHeight 的一半。

如何对组合框下下拉项的视觉空间执行类似的操作?

JComboBox dropped down

例如,在上图中,我想获取“Test 1”(在下拉列表中,而不是在编辑器中)或“Test 2”或“Test 3”的 x,y 坐标.

也就是说,如果“测试 1”位于 (10,10),“测试 2”位于 (10,20),“测试 3”位于 (10,30),并且每个测试的 (width,height) 为(30,10),我想要 f(0) = (10,10), f(1) = (10,20), f(2 )=(10,30)。或者,如果我们也获得了完整边界,则 f(2) = (10,20,30,10),但同样,完整边界对于至少获取位置而言是次要的。

最佳答案

How can I do something similar for the visual real estate of the drop-down items under the combo box?

您可以访问用于显示组合框项目的 JList。

JComboBox comboBox = new JComboBox(...);
BasicComboPopup popup = (BasicComboPopup)comboBox.getAccessibleContext().getAccessibleChild(0);
JList list = popup.getList();
Rectangle bounds = list.getCellBounds(...);
// bounds will be relative to the bottom of the combo box.

我只在监听器中使用了上述逻辑,因此我不确定是否在首次创建组合框时或首次显示弹出窗口时创建弹出窗口。

关于java - 如何获取 JComboBox 项目的屏幕坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43895048/

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