javaswing的渐隐效果Tools弹框

    public void translucentDialog(String msg) {
        JLabel messageJLabel = new JLabel(msg);
        messageJLabel.setBackground(new Color(0, 0, 0, 0));
        showTranslucentMemberZheKouConfirmDialog(innerDlg, messageJLabel, 1);
    }

    /**
     * 渐隐效果对话框
     *
     * @param parentDialog
     * @param msgLab
     * @return
     */
    public void showTranslucentMemberZheKouConfirmDialog(Window parentDialog, JLabel msgLab, int sec) {
        secends = sec;
        // 创建对话框的面板,添加内容
        msgLab.setFont(getFontInTextBox());
        msgLab.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
        msgLab.setOpaque(false);
        msgLab.setForeground(Color.WHITE);
        msgLab.setHorizontalAlignment(SwingConstants.CENTER);

        dialog = null == parentDialog ? new JDialog(MainFrame.getInstance()) : new JDialog(parentDialog);

        dialog.setUndecorated(true);
        UndergroundPanel mainPanel = new UndergroundPanel();
        mainPanel.setLayout(new BorderLayout());
        mainPanel.add(msgLab, BorderLayout.CENTER);

        /*dialog.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                float translucent = 1.0f;
                while (translucent > 0) {
                    dialog.setOpacity(translucent);
                    translucent -= 0.02f;
                }
                dialog.dispose();
            }
        });*/

        TransparentPanel pTmp = new TransparentPanel(new BorderLayout());
        pTmp.add(mainPanel, BorderLayout.SOUTH);
        pTmp.setBorder(BorderFactory.createEmptyBorder(0, 0, 2, 0));
        pTmp.setBackground(new Color(0, 0, 0, 0));
        dialog.setContentPane(PanelWraper.wrapForFullScr(pTmp));
        dialog.setModal(true);
        dialog.setLocation(0, 0);
        dialog.setResizable(false);
        AWTUtilities.setWindowOpaque(dialog, false);
        ScheduledExecutorService s = Executors.newSingleThreadScheduledExecutor();
        s.scheduleAtFixedRate(() -> {
//            this.secends--;
//            if (this.secends == 0) {
            // 渐隐效果
            float translucent = 1.0f;
            while (translucent > 0) {
                dialog.setOpacity(translucent);
                translucent -= 0.02f;
            }
            dialog.dispose();
            s.shutdown();
//            }
        }, 1, 1, TimeUnit.SECONDS);
        dialog.pack();
        dialog.setLocationRelativeTo(parentDialog);
        dialog.setVisible(true);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值