如果没有鼠标事件,则使JFrame在20秒内消失

时间:2014-04-02 20:51:26

标签: java swing jframe fadeout

在下面的代码中需要帮助,我使用JFrame作为弹出窗口来显示通知,因此当弹出任何新通知时,如果没有鼠标事件,它应该慢慢弹出然后在20秒内消失。 / p>

SwingUtilities.invokeLater(new Runnable(){
    public void run(){
        new Timer(5000,new ActionListner(){
            public void actionPerformed(ActionEvent e){
                alpha+=increment;
                if(alpha>=225){
                    alpha=225;
                    increment=-increment;
                }
                if(alpha<=0){
                    alpha=0;
                    increment=-increment;
                }
                frame.setForeground(new color(0,0,0,alpha));
            }
        }).start();
    }
});

1 个答案:

答案 0 :(得分:3)

而不是

frame.setForeground(new color(0,0,0,alpha));

尝试使用

frame.setBackground(new color(0,0,0,alpha));

根据您在框架上的内容,您需要使用MouseListenerMouseMotionListener来监控鼠标事件。然后,您可以使用另一个Timer,它会在鼠标事件发生时重置。

一旦这个Timer终于触发,你就会开始淡入淡出循环......

看看: