java - Java-如何降低 Java 中装饰 JFrame 的不透明度?
问题描述
我正在尝试更改 JFrame 的不透明度,但不要将其设置为 Undecorated,因为它会删除它的 Tilte Bar。
我试过这个: -
JFrame subFrame = new JFrame();
subFrame.setBounds(0, 0, 500, 500);
subFrame.setVisible(true);
subFrame.setOpacity(0.80f);
但它给出了错误: -
Exception in thread "main" java.awt.IllegalComponentStateException: The frame is decorated
at java.awt.Frame.setOpacity(Unknown Source)
at TransparentFrame.main(TransparentFrame.java:26)
请帮我!!!!!!!!!
解决方案
javaDocs 清楚地说明 JFrame 必须未经修饰才能使用 setOpacity() 方法。所以不幸的是这是不可能的。至少不是你这样做的方式。您可以使用以下(不是很干净)解决方法:
JFrame.setDefaultLookAndFeelDecorated(true); //Before you create the JFrame.
UIManager.setLookAndFeel(new MetalLookAndFeel());
然后创建您的 JFrame 实例。
推荐阅读
- react-native-navigation - 如何用 react-native-navigation v2 中的其他组件替换嵌套堆栈?
- python - 如何检查目录是否是有效的 Postgres 数据库
- ios - 企业分发 ios 应用程序 - 无法连接到服务器
- postgresql - 将数据从 Cassandra 传输到 Postgressql
- java - Sitebricks 控制器中请求参数的方法拦截或验证
- python - 想用成员详细信息刮掉这个链接
- controls - Autohotkey 从工具提示中获取控制权
- flutter - 颤动的 CachedNetworkImage 无法按预期工作
- c++ - 是否有任何模拟框架允许模拟 std::ifstream 和其他 I/O 库?
- php - 显示最接近当前时间的项目