我是JavaFX的新手,我试图做一个将显示同一类中几个面板的应用程序:类PacienteGUI创建了一个面板,并且我想在我的主FXML中显示其中的5个PacienteGUI面板,它本身具有一个面板。我试图通过控制器通过添加它

@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无法转换为节点。我该如何解决?

谢谢

最佳答案

您的Paciente类是Swing JPanel,不能将其直接放置在JavaFX Pane中。

您需要使Paciente是JavaFX Pane的子类,或者需要将Paciente实例包装在SwingNode中。后者(SwingNode)非常棘手,因为您将需要使用两个不同的线程来创建不同的组件:需要在AWT事件分配线程上创建和访问swing组件,并且需要在FX上创建JavaFX组件。应用程序线程。我强烈建议您不要混合使用JavaFX和Swing。

07-24 13:37