2009-11-20 16 views
7

मैं एक विदेशी आवेदन के लिए एक एचयूडी शैली प्रदर्शन बनाने की कोशिश कर रहा हूँ।जावा में ओवरले विंडो कैसे बनाएं?

ऐसा करने के लिए, मुझे एक पारदर्शी ओवरले विंडो बनाने की आवश्यकता होगी, जिसे विदेशी एप्लिकेशन की विंडो के शीर्ष पर रखा जाएगा। ओवरले विंडो मुझे विजेट्स रखने और उस पर टेक्स्ट खींचने की अनुमति देनी चाहिए। घटनाओं को अंतर्निहित विंडो, पर अग्रेषित किया जाना चाहिए यदि वे पारदर्शी क्षेत्र पर होते हैं (और अन्यथा विजेट को अपेक्षित के रूप में काम करने की अनुमति दें)।

मैं जावा के साथ ओएसएक्स पर ऐसा कर रहा हूं। मुझे यह उम्मीद है कि शुद्ध जावा के साथ अन्य प्लेटफॉर्म पर पोर्टेबिलिटी के साथ ऐसा करने की उम्मीद है, लेकिन यदि संभव नहीं है, तो मैं समाधान के साथ ठीक हूं जो को कोको (रोकोकोआ) या कार्बन के माध्यम से ओएसएक्स पर ऐसा करने की अनुमति देगा।

+0

क्या आपके पास अन्य ऐप से एक स्क्रीनशॉट है? – OscarRyz

उत्तर

17

दरअसल, इसे स्वयं समझने में सक्षम था। मुझे अपेक्षा से आसान होना लगता है:

public class Overlay { 

    public static void main(String[] args) { 
     JFrame frame = new JFrame("Transparent Window"); 
     frame.setUndecorated(true); 
     frame.setBackground(new Color(0, 0, 0, 0)); 
     frame.setAlwaysOnTop(true); 
     // Without this, the window is draggable from any non transparent 
     // point, including points inside textboxes. 
     frame.getRootPane().putClientProperty("apple.awt.draggableWindowBackground", false); 

     frame.getContentPane().setLayout(new java.awt.BorderLayout()); 
     frame.getContentPane().add(new JTextField("text field north"), java.awt.BorderLayout.NORTH); 
     frame.getContentPane().add(new JTextField("text field south"), java.awt.BorderLayout.SOUTH); 
     frame.setVisible(true); 
     frame.pack(); 
    } 
} 
+3

"frame.pack()" को मत भूलना! – aeoliant

+0

आप जानते हैं कि यह बटन के लिए भी काम करता है? अर्थात। अगर मैं किसी अन्य एप्लिकेशन के शीर्ष पर अर्ध-पारदर्शी बटन नहीं कर सकता, जहां ईवेंट अंतर्निहित एप्लिकेशन को नहीं भेजा जाता है लेकिन बटन पर तो मैं इसे दबा सकता हूं? – Peter

+1

मुझे टेक्स्ट फ़ील्ड दिखाई नहीं देते हैं। कोई विचार क्यों हो सकता है? – clankill3r

संबंधित मुद्दे