0

我有一个 FXML 文件,其中有一个窗格作为它的条目之一,用于我们程序的输出。我想让这个窗格包含一个 HTMLEditor。我对如何做到这一点有点困惑。该类使用推荐的单例模式,我可以调用控制器来获取窗格。

然后我发现自己必须创建一个内部类,因为 HTMLEditor 不是节点。所以我扩展了矩形来做到这一点,并使用 getChildren.add(htmlEditorWrapper) 尝试将其添加为节点。当然,当我运行程序时,HTMLEditor 并没有出现。

我的问题的要点:如何将 HTMLEditor 添加到窗格(位于 fxml 文件中)?

import javafx.scene.layout.Pane;
import javafx.scene.shape.Rectangle;
import javafx.scene.web.HTMLEditor;

/**
 * Gets the controller's outputPane (the console in the gui)
 * @author Matt
 *
 */
public class OutputPanel{

    private static Pane pane;
    private static HtmlEditorWrap htmlEditor = new HtmlEditorWrap();

    private static final OutputPanel outputPanel = new OutputPanel();

    private OutputPanel(){}

    public static OutputPanel getInstance(){
        pane = Controller.getOutputPane();
        pane.getChildren().add(htmlEditor);
        return outputPanel;
    }

    public void clear(){
        //htmlEditor.setHtmlText();
    }

    public static void write(String text){
        htmlEditor.setHtmlText(text + "\n");
    }

}

class HtmlEditorWrap extends Rectangle{

    HTMLEditor htmlEditor = new HTMLEditor();

    public HtmlEditorWrap(){
        htmlEditor.setLayoutX(200);
        htmlEditor.setLayoutY(200);
        htmlEditor.setHtmlText("TESTING");
    }

    public void setHtmlText(String text){
        htmlEditor.setHtmlText(text);
    }

}
4

1 回答 1

3

实际上HtmlEditor是一个Node. 尝试直接添加它。您是如何通过扩展获得编辑器的Rectangle

于 2013-04-05T06:58:23.553 回答