Удивительно, но я узнал, как подключить пользовательский заставку на основе 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;
}
Другие вещи, чтобы помнить, являются:
Подавить оригинальный экран заставки NetBeans, запустив приложение с параметром --nosplash
.
Вызов пользовательского класса инициализации, запустив приложение с параметром -J-Dnetbeans.mainclass=com.package.splash.CustomStartup
Как link suggests этот пользовательский класс должен быть на инициализацию платформы классов, а это означает внутри папки platform/core
.
Очень полезно! Если я решил создать заставку с самого начала, любые указатели на то, как запустить это вместо собственного NetBeans? – Marcelo
Я не уверен. Текущий класс заставки - это синглтон, и если бы он использовал шаблон локатора службы, вы могли бы ввести свой собственный заставку, но, к сожалению, это не так (может быть полезно зарегистрировать для него ошибку NetBeans/функцию). Но я знаю, что можно отключить экран заставки по умолчанию, тогда вы должны просто выяснить, как и когда показывать свои собственные. – ughzan