Popup中的JavaFx 8 TextField不会聚焦

时间:2015-04-15 09:09:54

标签: java javafx-8 japplet

我正在使用JavaFX 8制作applet(通过JFXPanel)并计划使用Popup来显示其中包含TextField的区域。这可以按预期工作,直到应用程序失去焦点。在那之后,我无法重新获得TextField重新获得焦点,因此您无法再输入它。我尝试在requestFocus()上拨打TextField,但似乎没有做任何事情。问题可以在下面的简单示例中看到:

import javafx.application.Platform;
import javafx.embed.swing.JFXPanel;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.stage.Popup;

import javax.swing.*;

public class FXApplet extends JApplet { 
    protected Scene scene;
    protected Group root;

    @Override
    public final void init() {
        SwingUtilities.invokeLater(() -> initSwing());
    }

    private void initSwing() {
        JFXPanel fxPanel = new JFXPanel();
        add(fxPanel);

        Platform.runLater(() -> {
            initFX(fxPanel);
            initApplet();
        });
    }

    private void initFX(JFXPanel fxPanel) {
        root = new Group();
        scene = new Scene(root);
        fxPanel.setScene(scene);
    }

    public void initApplet() {
        Popup popup = new Popup();

        popup.setAutoHide(false);
        popup.getContent().add(new TextField());
        popup.show(scene.getWindow());
    }
}

0 个答案:

没有答案