将面板添加到 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。我该如何解决这个问题??
谢谢
您的Paciente
class是SwingJPanel
,不能直接放在JavaFXPane
中。
您需要使 Paciente
成为 JavaFX Pane
的子 class,或者您需要将 Paciente
实例包装在 SwingNode
中.后者 (SwingNode
) 比较棘手,因为您需要使用两个不同的线程来创建不同的组件:swing 组件需要在 AWT 事件调度线程上创建和访问,而 JavaFX 组件需要在外汇应用线程。如果可以的话,我强烈建议不要混合使用 JavaFX 和 Swing。
我是 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。我该如何解决这个问题??
谢谢
您的Paciente
class是SwingJPanel
,不能直接放在JavaFXPane
中。
您需要使 Paciente
成为 JavaFX Pane
的子 class,或者您需要将 Paciente
实例包装在 SwingNode
中.后者 (SwingNode
) 比较棘手,因为您需要使用两个不同的线程来创建不同的组件:swing 组件需要在 AWT 事件调度线程上创建和访问,而 JavaFX 组件需要在外汇应用线程。如果可以的话,我强烈建议不要混合使用 JavaFX 和 Swing。