首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实时更改JFrame不透明度

如何实时更改JFrame不透明度
EN

Stack Overflow用户
提问于 2011-11-11 18:02:06
回答 2查看 3.7K关注 0票数 0

有没有什么好方法可以实时改变JFrame的不透明度?现在,我需要重新启动窗口以获得不透明度

代码语言:javascript
复制
        if (Variables.LoggerOpacity){
        if (AWTUtilities.isTranslucencySupported(AWTUtilities.Translucency.TRANSLUCENT)) {
              AWTUtilities.setWindowOpaque(Frame, true);
              AWTUtilities.setWindowOpacity(Frame, 0.60f);
        }
    }

当我使用

代码语言:javascript
复制
AWTUtilities.setWindowOpacity(Frame, 0.60f);

在按钮JCheckBox上,我不会改变不透明度。问:如何实时更改不透明度?

EN

回答 2

Stack Overflow用户

发布于 2011-11-11 18:31:25

即使您已经将JFrame设置为static,如果您的不透明方法在同一个类中,您也应该能够引用它--创建一个getter方法来引用您的JFrame并将其传递给您的函数。下面是一个执行的示例程序,它的不透明性运行良好:

代码语言:javascript
复制
public class JFrameOpacityExample extends JFrame {

private static JFrame myFrame;
private static boolean loggerOpacity;
private static JButton button;

public static void main(String[] args) {

    myFrame = new JFrame("Test Frame");
    myFrame.setSize(400, 400);
    myFrame.setVisible(true);

    JPanel panel = new JPanel();

    button = new JButton("Press me");
    button.setBounds(100, 100, 50, 50);
    button.setVisible(true);
    panel.add(button);
    myFrame.add(panel);

    loggerOpacity = true;

    button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
            Object src = evt.getSource();
            if (src == button && loggerOpacity) {
                AWTUtilities.setWindowOpacity(myFrame, 0.40f);
            }
        }
    });
  }
}
票数 0
EN

Stack Overflow用户

发布于 2011-11-11 18:59:21

将以下命令添加到框架的构造函数中。本例中帧的名称为MyFrame

代码语言:javascript
复制
    jCheckBox1.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent ae) {
            AWTUtilities.setWindowOpacity(MyFrame.this, 0.2f);
        }
    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8092369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档