簡體   English   中英

制作帶有可見邊框的透明JFrame

[英]Make transparent JFrame with visible borders

我正在嘗試創建一個透明的JFrame ,即內部完全透明的窗口,而邊框(帶有關閉按鈕的頂部欄)的邊框最小化,等可見。 我嘗試創建一個新的Jpanel ,然后使用panel.setOpaque(false); ,但沒有幫助。

我是Swing和Java GUI的新手,很想獲得幫助。

您想做的事是可能的,但並非以您想象的方式...

如果要使用標准操作系統的窗口裝飾(例如,窗口邊框,關閉,最大化,最小化按鈕),則不可能。 透明度不能應用於“裝飾”幀。

但是,這可以通過使用Java的默認窗口裝飾來完成。 試試下面的代碼:

public static void main(String[] args) {
    JPanel panel = new JPanel() {
        @Override
        protected void paintComponent(Graphics g) {
            g.setColor(Color.RED);
            g.drawRect(32,32,32,32);
        }
    };

    JFrame.setDefaultLookAndFeelDecorated(true);
    JFrame f = new JFrame();
    f.add(panel);
    f.setSize(256,256);

    // The following two statements cause the window-transparency:
    f.setUndecorated(true);
    f.setBackground(new Color(0,255,0,0));

    f.setVisible(true);
}

我個人並不覺得Java窗口裝飾看起來很漂亮...除此之外,特定於操作系統的功能(例如,通過將窗口移動到屏幕側面以“半最大化”窗口的Window的Snap功能)不會”對我來說,這是個大難題,但根據您的需要,它可能是一個可以接受的解決方案。 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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