将面板添加到fxml窗格

时间:2015-09-01 23:54:18

标签: java javafx panel fxml

我是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无法转换为节点。我怎么解决这个问题?

由于

1 个答案:

答案 0 :(得分:1)

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

您需要使Paciente成为JavaFX Pane的子类,或者需要将Paciente实例包装在SwingNode中。后者(SwingNode)很棘手,因为你需要使用两个不同的线程来创建不同的组件:需要在AWT事件调度线程上创建和访问swing组件,并且需要在之后创建JavaFX组件FX应用程序线程。如果你能这样做,我强烈建议混合使用JavaFX和Swing。