工具提示窃取鼠标事件

时间:2011-03-14 22:37:38

标签: swing tooltip mouseevent

当我在屏幕按钮附近有按钮时,工具提示会出现在鼠标下方。单击将使工具提示消失,而不是单击按钮。

Tooltip Example

 public static void main(String[] args) {
    JFrame frame = new JFrame("Test");
    JButton button = new JButton("Test");
    button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            System.out.println("action performed");
        }
    });
    button.setToolTipText("Sample tooltip text");
    frame.add(button);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    frame.pack();
}

知道如何确保按钮在这种情况下收到点击吗?

1 个答案:

答案 0 :(得分:0)

仅当您将鼠标停在按钮上,等待工具提示,然后移动鼠标并单击工具提示时,才会发生这种情况。如果您在工具提示出现之前单击按钮,或者在您单击之前没有将鼠标移动到工具提示/您的用户应该没问题。

我相信这正是工具提示应该如何工作,你点击它就可以解雇它。如果这导致问题,我会建议三个选项之一:

  1. 将工具提示的延迟设置为更长:ToolTipManager.sharedInstance().setInitialDelay()
  2. 不要显示工具提示
  3. 编写自己的鼠标移动侦听器,而不是将工具提示显示在侧面或GUI的其他部分。