java - 将鼠标位置分派(dispatch)给 JList 的自定义单元格渲染器中的组件

标签 java swing jlist mousemove listcellrenderer

我正在为 JList 使用自定义 cellrenderer,它为模型中的每个值创建一个 JPanel。

我想更改 JPanel 的一个组件的鼠标光标。

但是 JList 似乎没有将鼠标移动/位置分派(dispatch)给子项,并且我的光标没有更新。

这是我的 JList 树:

JList
    Custom Cell Renderer
        Custom Cell (JPanel)
            Components
            My component with mouse cursor changed

如何让 JList 调度鼠标位置?

谢谢。

编辑:一些代码:

public class JCOTSDisplay extends JList
{
    public JCOTSDisplay()
    {
        setCellRenderer(new COTSListCellRenderer());
        setModel(.....);
    }
}

public class COTSListCellRenderer implements ListCellRenderer
{
    @Override
    public Component getListCellRendererComponent(final JList list, final Object value, final int index, final boolean isSelected, final boolean cellHasFocus)
    {
        return new JCOTSCell((COTS) value);
    }
}

public class JCOTSCell extends JPanel
{
    public JCOTSCell(final COTS cots)
    {
        initComponents();
    }

    private void initComponents()
    {
        JLabel lblUrl = new JLabel("<url>");
        lblUrl.setCursort(new Cursort(Cursor.HAND_CURSOR));
    }
}

最佳答案

好的,所以 JList 仅显示,它的行为就像组件呈现为图像一样,因此任何鼠标监听器/操作都不会被触发/分派(dispatch)。

我已将 JList 替换为带有 0 行和 1 列的 GridLayout 的 JPanel。

我已经实例化了我的模型和单元格渲染器,并像 JList 一样使用它们。

现在一切都按照我想要的方式进行。

谢谢。

关于java - 将鼠标位置分派(dispatch)给 JList 的自定义单元格渲染器中的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19378466/

相关文章:

java - 单击搜索按钮后 JList 不填充

java - Java 中的 DefaultListModel 修改作为参数传递给 addElement 方法的 String

java - protoc 自定义插件出错并显示程序未找到或不可执行

java - 在 RecyclerView 中加载 WebView 时显示进度

java - 找不到符号 : java.net.Socket

java - 如何为 Java 程序发布补丁

java - 使用 WindowBuilder 通过 Graphics2D 绘制图形

java - 如何将 MouseListener 添加到 JList 项目?

Java 布局,组件始终位于右上角

java - 在actionperformed监听器中创建jpanel?