2016-02-22 4 views
0

Как добавить swingNode в конкретную панель с помощью моего класса контроллера?Как вставить JPanel в панель JavaFX для визуализации графа

Я пытаюсь добавить JPanel, который загружает сетевой график, созданный с помощью программной библиотеки JUNG. Я не уверен, как это сделать.

ответ

0

Вы можете достичь того, что хотите сделать, используя класс SwingNode. Ниже приведен пример кода, где JButton (свинг компонент) добавляют к (компонент JavaFX) StackPane:

public class SwingFx extends Application { 

    @Override 
    public void start(Stage stage) { 
     final SwingNode swingNode = new SwingNode(); 
     createAndSetSwingContent(swingNode); 

     StackPane pane = new StackPane(); 
     pane.getChildren().add(swingNode); 

     stage.setScene(new Scene(pane, 100, 50)); 
     stage.show(); 
    } 

    private void createAndSetSwingContent(final SwingNode swingNode) { 
     SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       swingNode.setContent(new JButton("Click me!")); 
      } 
     }); 
    } 

    public static void main(String[] args) { 
     launch(args); 
    } 
} 

Источник: http://download.java.net/jdk8/jfxdocs/javafx/embed/swing/SwingNode.html