У меня есть огромное приложение для качания, и я хотел вставить javafx в него. Я пробовал много раз, чтобы сделать это (следуя инструкциям оракула и т. Д.), И мне это удастся, только когда я объявил новый JFrame для использования компонента JFXPanel. Но я не хочу использовать новый фрейм, я хочу включить свой код Javafx в корневой JFrame приложения swing.Вставить Javafx в swing приложение
Можем ли мы встраивать компоненты javaFX в JPanel вместо JFrame? Если да, то почему мне это не удалось?
Существует пример кода, который, вероятно, неправильно:
Этот класс непосредственно расширяет JPanel и метод инициализации вызывается в EDT
private void initialize(){
setLayout(new BorderLayout());
final JFXPanel fxPanel = new JFXPanel();
JPanel jp = new JPanel();
jp.add(fxPanel);
jp.setVisible(true);
jp.setSize(500, 300);
jp.setBackground(Color.CYAN);
Platform.runLater(new Runnable() {
@Override
public void run() {
initFX(fxPanel);
}
});
add(createButtonsPanel(), BorderLayout.NORTH);
add(jp,BorderLayout.CENTER);
}
private static void initFX(JFXPanel fxPanel) {
Scene scene = initScene();
fxPanel.setScene(scene);
}
private static Scene initScene(){
Group root = new Group();
Scene scene = new Scene(root, javafx.scene.paint.Color.ALICEBLUE);
Text text = new Text();
text.setX(40);
text.setY(100);
text.setFont(new Font(25));
text.setText("Welcome JavaFX!");
root.getChildren().add(text);
return (scene);
}
Прошу прощения, но что именно происходит не так? – Sebastian
На самом деле содержимое JavaFX в моем JPanel скрыто. Мы можем видеть только компоненты поворота – Baya