将面板添加到 fxml 窗格

Add a panel to a fxml pane

我是 JavaFX 的新手,我正在尝试做一个应用程序来显示来自同一 class 的多个面板:class PacienteGUI 创建了一个面板,我想显示其中的 5 个这个 PacienteGUI 面板在我的主 FXML 中,它本身有一个面板。我尝试通过

通过控制器添加它
@FXML Pane principal;

@Override
public void initialize(URL url, ResourceBundle rb) 
{
    PacienteGUI paciente = new PacienteGUI(1);
    principal.getChildren().add(paciente);
} 

PacienteGUI 的一部分:

public class PacienteGUI extends javax.swing.JPanel {

public PacienteGUI(int num) {
    chairNum = num;
    initComponents();
}

private void initComponents() {
..
..
..Creates JPanel with all its components
..
}

问题是说PacientesGUI不能转成node。我该如何解决这个问题??

谢谢

您的Pacienteclass是SwingJPanel,不能直接放在JavaFXPane中。

您需要使 Paciente 成为 JavaFX Pane 的子 class,或者您需要将 Paciente 实例包装在 SwingNode 中.后者 (SwingNode) 比较棘手,因为您需要使用两个不同的线程来创建不同的组件:swing 组件需要在 AWT 事件调度线程上创建和访问,而 JavaFX 组件需要在外汇应用线程。如果可以的话,我强烈建议不要混合使用 JavaFX 和 Swing。