我是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无法转换为节点。我怎么解决这个问题?
由于
答案 0 :(得分:1)
您的Paciente
类是Swing JPanel
,不能直接放在JavaFX Pane
中。
您需要使Paciente
成为JavaFX Pane
的子类,或者需要将Paciente
实例包装在SwingNode
中。后者(SwingNode
)很棘手,因为你需要使用两个不同的线程来创建不同的组件:需要在AWT事件调度线程上创建和访问swing组件,并且需要在之后创建JavaFX组件FX应用程序线程。如果你能这样做,我强烈建议不混合使用JavaFX和Swing。