我是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。