当前位置: 首页 > 面试题库 >

Java Swing:将鼠标移至背景颜色

罗华翰
2023-03-14
问题内容

我实现了一个简单的鼠标侦听器,每当鼠标进入组件(JPanel)时,背景颜色都会改变,每当鼠标离开时,背景颜色就会恢复。这有一些问题:

  • 有时鼠标移动得太快,以至于不会触发 mouseExit 事件
  • 如果我的组件有子级,则当鼠标移至子级时会触发 mouseExit
  • 如果我将鼠标快速移至儿童,则不会触发 mouseEnter 事件

我猜这对Swing老兵来说很容易。对于如何解决这个问题,有任何的建议吗?我不希望使用计时器等…


问题答案:

如果我将鼠标快速移至儿童,则不会触发mouseEnter事件

我从未见过这种情况发生,但是如果这是一个问题,那么您可以处理mouseMoved来重置背景。

如果我的组件有子级,则当鼠标移至子级时会触发mouseExit

使用以下测试,仅当您离开组件界限时,才会执行代码:

public void mouseExited(MouseEvent e) 
{
    if (! getVisibleRect().contains(e.getPoint()) )
    {
        setBackground(...);
    }
}


 类似资料:
  • 在超文本标记语言中,我什么时候使用颜色,背景颜色和背景标签有什么区别? 有什么区别?

  • background(int $color, int $pattern = self::PATTERN_SOLID): self int $color $format = new \Vtiful\Kernel\Format($fileHandle); ​ $backgroundStyle = $format->background( \Vtiful\Kernel\Format::COLO

  • 我正在制作一个基于文本的游戏,用户输入文本来解决游戏。我决定使用JavaSwing来显示文本,我希望文本窗格的背景为黑色。我已经尝试了所有我发现的东西(注释掉了),但是没有一个看起来有效。 这里没有显示导入的图片,但是当我使用任何被注释掉的部分运行游戏时,游戏中没有错误。

  • 背景颜色是背景应用中最基础的属性,使用 background-color属性,几乎可以为任何元素定义背景颜色,该属性不能被继承,其默认值是 transparent,即透明背景。也就是说,如果一个元素没有显式定义背景颜色,那么其背景是透明的,就可以透过该元素看到其祖先元素的背景。 background-color属性接受任意合法的CSS颜色值,如预定义的颜色名、十六进制数值、RGB值、RGB百分比、

  • 问题内容: 假设我要在CSS中渲染箭头,箭头应具有头部,尾部和灵活的宽度,以便可以包含文本。我当然可以创建多个div来获得所需的内容,但是如何在CSS3中完成呢? 我可以使用多个背景图片: 的HTML: 这给了我一个带有箭头和尾巴的透明中间部分。似乎不可能在中间部分指定颜色。 仅使用一张背景图像,您可以执行以下操作: 我知道这在很多方面都是可行的,但是背景颜色属性是否真的从速记定义中丢失了? 问题