![](/img/trans.png)
[英]Customizing the Foreground and Background Colors of Java Swing Menu Items, Menu Separators, and Menu Accelerators
[英]Swing - Creating a tinted transparent foreground while making the background items not clickable
因此,我正在使用Swing创建Java应用程序用户界面。 基本上,每当一个过程完成时,我都希望有一个带有某种色彩的透明叠加层,并且在前台会显示一个加载的gif。 后台项目将不可单击,以防止立即加载/运行任何其他进程。 我真正需要帮助的唯一部分是使有色背景和使背景中的项目不可单击。 理想情况下,我希望将此类用作Util类,以在需要启动加载屏幕的其他情况下使用。 到目前为止,这是我的代码:
package com.cervinakuy.game;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class Overlay extends JFrame {
private static final long serialVersionUID = 1L;
public Overlay() {
setUndecorated(true);
setBackground(new Color(1.0f,1.0f,1.0f,0.5f));
setAlwaysOnTop(true);
getRootPane().putClientProperty("apple.awt.draggableWindowBackground", false);
setVisible(true);
pack();
}
}
除了可以使用modal JDialog
而不是JFrame之外,您可以执行其他操作。 模态对话框可防止在对话框关闭之前将事件传递给父JFrame。
另一种方法是使用Glass Pane
。 玻璃窗格可以覆盖框架。 然后,您可以拦截Mouse / Key事件以防止进一步处理,直到卸下玻璃窗格为止。
请查看“ 禁用玻璃窗格”以获取此方法的示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.