आश्चर्यजनक रूप से पर्याप्त, मुझे पता चला कि this post about user authentication and authorization पर आधारित कस्टम स्प्लैश स्क्रीन को कैसे प्लग करें।
असल में, एक, एक और स्टार्ट-अप वर्ग लिखने के लिए की जरूरत है मंच के डिफ़ॉल्ट के बजाय:
import java.lang.reflect.Method;
public class CustomStartup {
private static final String NB_MAIN_CLASS = "org.netbeans.core.startup.Main";
public static void main(String[] args) throws Exception {
// do whatever you need here (e.g. show a custom login form)
System.out.println("Hello world! I am a custom startup class");
JWindow splash = initSplash();
// once you're done with that, hand control back to NetBeans
ClassLoader classloader = Thread.currentThread().getContextClassLoader();
Class<?> mainClass = Class.forName(NB_MAIN_CLASS, true, classloader);
Object mainObject = mainClass.newInstance();
Method mainMethod = mainClass.getDeclaredMethod("main", new Class[]{String[].class});
mainMethod.invoke(mainObject, (Object) args);
splash.setVisible(false);
}
}
कि कक्षा में, एक, एक JavaFX मंच बना सकते हैं यह एक JWindow
में एम्बेड, और यह दिखाने:
public JWindow initSplash(){
JWindow window = new JWindow();
final JFXPanel fxPanel = new JFXPanel();
window.add(fxPanel);
window.setVisible(true);
window.setLocationRelativeTo(null);
Platform.runLater(new Runnable() {
@Override
public void run() {
Scene scene = new Scene(new CustomFxSplash(), 475, 300, true);
fxPanel.setScene(scene);
}
}
return window;
}
अन्य चीजें याद करने के लिए कर रहे हैं:
दबाने --nosplash
पैरामीटर के साथ अपना ऐप चलाकर मूल नेटबीन स्प्लैश स्क्रीन।
-J-Dnetbeans.mainclass=com.package.splash.CustomStartup
पैरामीटर
link suggests इस कस्टम वर्ग मंच के प्रारंभ classpath पर हो सकता है, platform/core
फ़ोल्डर के अंदर अर्थ है के रूप में के साथ अपने ऐप चलाकर अपने कस्टम आरंभीकरण वर्ग पर कॉल करें।
बहुत उपयोगी! अगर मैं शुरुआत से स्प्लैश स्क्रीन बनाने का फैसला करता हूं, तो मूल नेटबीन के बजाय इसे चलाने के तरीके पर कोई संकेतक? – Marcelo
मुझे यकीन नहीं है। वर्तमान स्प्लैश स्क्रीन क्लास एक सिंगलटन है और यदि केवल यह सेवा लोकेटर पैटर्न का उपयोग करता है तो आप अपनी खुद की स्प्लैश स्क्रीन इंजेक्शन दे सकते थे लेकिन दुर्भाग्यवश यह नहीं है (इसके लिए नेटबीन बग/फीचर अनुरोध लॉग करना फायदेमंद हो सकता है)। लेकिन मुझे पता है कि डिफ़ॉल्ट स्पलैश स्क्रीन को अक्षम करना संभव है, तो आपको यह पता लगाना चाहिए कि अपना खुद का तरीका कब और कब दिखाया जाए। – ughzan