2012-10-13 19 views
16

मैं एक ऐसा एप्लिकेशन लेना चाहता हूं जहां मैंने खिड़की की उपस्थिति को पूरी तरह से अनुकूलित किया हो। अब तक मैंने सीखा है मैं के साथ ठेठ खिड़की सामान निकाल सकते हैं कि:जावाएफएक्स पूरी तरह से अनुकूलित खिड़कियां?

class Application extends javafx.application.Application { 
    /** 
    * Starts the application. 
    * 
    * @param stage 
    */ 
    override def start(stage: Stage) { 
    stage.initStyle(StageStyle.TRANSPARENT) 

    // Load the main window view. 
    val loader = new FXMLLoader() 
    loader.setLocation(getClass.getResource("/com/myproj/application/MainWindow.fxml")) 

    val root = loader.load().asInstanceOf[Parent] 
    val scene: Scene = new Scene(root, Color.TRANSPARENT) 

    stage.setScene(scene) 
    stage.show() 
    } 
} 

बाकी सब कुछ ठीक काम करता है, कि विंडो खींचने के अलावा, डबल क्लिक करने के लिए अधिकतम, विंडोज पर ऊपरी किनारे स्क्रीन करने के लिए खींच सक्रिय होना चाहिए अधिकतम, आदि मूल खिड़की क्षमताओं पूरी तरह से गायब हैं।

मैं किसी भी तरह नहीं बल्कि आसानी से पूरे अनुकूलित कर सकता हूँ इन सब अच्छा क्षमताओं खोने के बिना खिड़की के दिखाई देते हैं।

मैं एडोब फोटोशॉप की तरह कुछ जो (या उनके UI के शीर्ष पर उन्हें लागू करता है मैन्युअल रूप से) पूरी तरह से अलग लग रहा है, लेकिन अभी भी इन सुविधाओं को बरकरार रखे हुए के बारे में बात कर रहा हूँ।

यह एक शुरुआत होगी यदि मैं कम से कम स्टार्टर्स के लिए खींचने + विंडो बटन को कार्यान्वित कर सकता हूं। मैं यहां लिनक्स, मैक और विंडोज को लक्षित कर रहा हूं।

उत्तर

15

अनुकूलित खिड़की उपस्थिति और Ensemble Sample application में से निपटने, जो स्रोत कोड शामिल देखें। source डाउनलोड करें, इसे बनाएं और इसे ब्राउज़र में एम्बेड करने के बजाए एक स्टैंडअलोन एप्लिकेशन के रूप में चलाएं। यह वही नहीं होगा जो आप पूछ रहे हैं क्योंकि अधिकतम करने के लिए स्क्रीन शीर्ष किनारे पर खींचने जैसी चीजें काम करने के लिए नहीं जा रही हैं, लेकिन यह बहुत करीब होना चाहिए और आप हमेशा कुछ ऐसा कोड कर सकते हैं जो खिड़की को अधिकतम करता है जब यह शीर्ष किनारे के पास खींच लिया गया था। एन्सेबल विंडो में कस्टम आकार बदलने की सजावट, कम से कम, अधिकतम, बंद आइकन, खिड़की के शीर्ष पर एक क्षेत्र है जो आप खिड़की के चारों ओर खींचने के लिए उपयोग कर सकते हैं या खिड़की को अधिकतम या छोटा करने के लिए डबल क्लिक कर सकते हैं - यानी मानक मानक में से अधिकांश एक डेस्कटॉप विंडोिंग सिस्टम से उम्मीद होगी।

भी कि तुम क्या कह रहे हैं के करीब कुछ पाने के लिए, शायद आप कुछ एक साथ दो खिड़कियां बनाने के द्वारा हैक कर सकता है। एक, एक मानक सजाए गए मंच खिड़की जिसमें स्क्रीन सीमाएं शामिल हैं, दूसरा एक अनिश्चित या पारदर्शी बाल मंच हमेशा मुख्य खिड़की के शीर्ष पर प्रदर्शित होता है और कस्टम प्रतिपादन के साथ मुख्य विंडो की सीमाओं को ओवरले करता है। मुझे लगता है कि आप इस दृष्टिकोण को लागू करने की कोशिश कर रहे कठिनाइयों में भाग ले सकते हैं, इसलिए मैं वास्तव में इसकी अनुशंसा नहीं करता।

आप बल्कि पारदर्शी तुलना में एक असज्जित मंच शैली कोशिश करते हैं और यदि आप उस के साथ बेहतर देशी विंडोज एकीकरण मिल देखने के लिए पसंद कर सकते हैं। अगर इस तरह की सुविधाओं के लिए महत्वपूर्ण हैं उनके लिए वोट -

वर्तमान में JavaFX के लिए निर्धारित JDK8, Windows: support Aero Glass effects for top-level windows, Mac: Support NSTexturedBackgroundWindowMask style for windows और The solid white background created in a Stage should be created - if needed - in the Scenegraph है, जो है, जब लागू किया, मदद की संभावना होगी आप अपने लक्ष्य हासिल करने के लिए के साथ भेज दिया कुछ खुले सुविधा का अनुरोध कर रहे हैं आप।

Ensemble Sample Application

इसके अलावा VFXWindows जो JavaFX के लिए एक खुला स्रोत विंडोइंग रूपरेखा है चेकआउट।

अद्यतन

साथ ही इससे संबंधित Undecorator परियोजना जिसे आप आसानी से मानक को कम से कम/अधिकतम/बंद/आकार बदलने के क्रोम नियंत्रण कि JavaFX इंजन के बजाय ओएस विंडोइंग प्रणाली के माध्यम से प्रदान की गई कर रहे हैं के साथ एक JavaFX मंच बनाने की अनुमति देता है । यह आपको विंडो प्रतिपादन पर कस्टम नियंत्रण की तरह प्राप्त करने की अनुमति देता है कि एन्सेम्बल डिस्प्ले जैसे एप्लिकेशन।

+1

अलावा आप undecorator का उपयोग नहीं करना चाहते हैं, तो [नमूना कस्टम डेकोरेटर] (https://gist.github.com/JaDogg/4d9999ba233f4a43b7c5) –

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