簡體   English   中英

搖擺-創建着色的透明前景,同時使背景項目不可單擊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM