-1

我正在做一个大的 Gui 项目。已经完成了很多复杂的事情,我无法更改代码的结构。由于这是一个复杂的项目,很难解释或给出 SSE,但我会尽力而为。

在我们的项目中,有些人已经实现了自己的 Table。表格中的所有单元格都是一个名为 CellPanel 的类,它扩展了JPanel类。所以实际上所有的表格单元格都是JPanels。这些疯狂的家伙已经实现了他们自己的 mouseClicked 函数,大约 400 行。所以我不是为了每个人的利益把它贴在这里:) 但是这种mouseClicked方法只有在右键单击时才有效。所以我有机会做这样的事情:

public void mouseClicked(MouseEvent e) {

    DropTable.selectedColorMng(rowInTable);
    if(e.getButton()==MouseEvent.BUTTON1) {
        System.out.println("left click");
    }
    else{ 
        // 400 lines of code here
    }
}

现在我想做的是这些 CellPanel 被设计为包含一个标签和一个图标。它一直是这样使用的。里面没有动态内容。但是现在我们有一个要求,我已经修改了这些 CellPanel 以包含JListScrollPane. 但是这些JLists是不可点击的。我想滚动它们进行多项选择,但它们不响应我的左键单击。所以我想我必须填写上面代码的if语句。

但是怎么做?

4

1 回答 1

0

我不确定我是否完全理解你的问题。我理解,您会CellPanel捕获点击事件,以便它们不会JList到达CellPanel.

如果是这样,您可以简单地将该事件委托mouseClickCellPanel必须JList有对它的引用,因为它在那里显示。

于 2012-10-31T10:15:22.477 回答