2011-09-08 38 views
7

इस सवाल से संबंधित: Is The Java Tutorials Translucent Window example giving trouble to those playing with jdk7?क्या जावा 7 में एक पारदर्शी खिड़कियां हो सकती हैं जिसमें टाइटल बार भी शामिल है?

jdk1.6.0_26 मैं एक JFrame को पारदर्शता लागू करने में सक्षम होने लगते हैं साथ

, लेकिन jre7 के साथ ऐसा नहीं:

NativeException: java.awt.IllegalComponentStateException: फ्रेम

सजाया गया है

पूर्व (JRuby पटकथा जावा, jdk1.6 हालांकि काम करता है jdk7 साथ नहीं):

 

require 'java' 

class MouseDraw 

    def self.go 
    java_import 'javax.swing.JFrame' 
    java_import 'com.sun.awt.AWTUtilities' 

    f = JFrame.new 
    AWTUtilities.set_window_opacity(f, 0.5) 
    f.set_size 200,200 
    f.show 
    end 

end 
MouseDraw.go 

तो मेरे सवाल है "यह संभव है करने के लिए jdk7 में एक पारदर्शी शीर्षक पट्टी "

उत्तर

8

जावा 7 शुरू की Window.setOpacity() क्या अनौपचारिक वर्ग AWTUtilities जावा 6. में किया था

करने के लिए दुर्भाग्य यह है (मैं एक पारदर्शी खिड़की मैं खींचने योग्य/आकार बदलने योग्य होने के लिए बना रहा हूं चाहते हैं) सजाया खिड़कियों के साथ काम करने के लिए दर्ज नहीं:

निम्न शर्तें अस्पष्टता 1.0f से कम मूल्य सेट करने के लिए पूरी होनी चाहिए:

(जोर मेरा)

+3

दुर्भाग्यपूर्ण वास्तव में, यह एक व्यवहार परिवर्तन है जो मौजूदा कोड को तोड़ता है ... – kleopatra

+0

@ क्लेओपेट्रा: लेकिन जब आपने साइन अप किया अनौपचारिक एपीआई का इस्तेमाल किया गया: 'एडब्ल्यूटी यूटिलिटीज' को जावा एसई में परिभाषित नहीं किया गया है और नई विधि किसी भी पूर्व परिभाषित सार्वजनिक विधि के साथ संगतता को तोड़ती नहीं है। –

+1

तकनीकी रूप से, आप सही हैं, तकनीकी रूप से, मैंने नहीं किया: इसके बजाय AWTUtilitiesWrapper का उपयोग किया गया था जो कार्यक्षमता के आधा-आधिकारिक पूर्वावलोकन था (और इसके बजाय विज्ञापन के रूप में विज्ञापित ;-) – kleopatra

2

आकर्षक रूप से, अगर आप

जोड़ने
JFrame.setDefaultLookAndFeelDecorated(true); 

फिर यह आपको टाइटल बार JFrame के साथ एक ड्रैगगेबल करने की अनुमति देता है (यह केवल बदसूरत जावा देखो और महसूस करता है)।

रेफरी: Pass mouse events to applications behind from a Java UI

अब जब कि अजीब है।

भी ध्यान रखें कि आप कर सकते हैं "नकली" पिक्सेल पारदर्शिता प्रति के जरिए पुरानी व्यवहार, देख http://docs.oracle.com/javase/tutorial/uiswing/misc/trans_shaped_windows.html

ताकि आप दोनों जावा 6 और 7 में पुराने व्यवहार हो सकता है, लेकिन आप विशेष मामला कोड होगा इसके चारों ओर और एक के लिए यह एक तरीका है, दूसरे के लिए एक तरीका, संभवतः ...