有没有什么好方法可以实时改变JFrame的不透明度?现在,我需要重新启动窗口以获得不透明度
if (Variables.LoggerOpacity){
if (AWTUtilities.isTranslucencySupported(AWTUtilities.Translucency.TRANSLUCENT)) {
AWTUtilities.setWindowOpaque(Frame, true);
AWTUtilities.setWindowOpacity(Frame, 0.60f);
}
}当我使用
AWTUtilities.setWindowOpacity(Frame, 0.60f);在按钮JCheckBox上,我不会改变不透明度。问:如何实时更改不透明度?
发布于 2011-11-11 18:31:25
即使您已经将JFrame设置为static,如果您的不透明方法在同一个类中,您也应该能够引用它--创建一个getter方法来引用您的JFrame并将其传递给您的函数。下面是一个执行的示例程序,它的不透明性运行良好:
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);
}
}
});
}
}发布于 2011-11-11 18:59:21
将以下命令添加到框架的构造函数中。本例中帧的名称为MyFrame。
jCheckBox1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
AWTUtilities.setWindowOpacity(MyFrame.this, 0.2f);
}
});https://stackoverflow.com/questions/8092369
复制相似问题