JavaFX TextArea包装文本,但它不应该

时间:2017-02-20 15:38:16

标签: java javafx scene scenegraph

好的,我是一个javafx newbe,只是尝试构建我自己的java IDE。

IDE有一个视图(" Start"选项卡),您可以在其中创建和编辑类以及可以调试此类的调试视图(" Debug"选项卡)。 (用于使用JDPA进行调试)。

"开始" view是一个简单的tabpane(classtabPane),在根边框的中心区域包含几个选项卡。

"调试"视图包含一个splitpane,它在更改视图时分配了classTabPane和其他节点。

这些视图之间的切换是通过另一个tabpane实现的,该tabpane集成在根边框的顶部区域中。

每个类都是一个单独的选项卡,其中嵌入了textarea。这些textAreas的每个文本都不应该被包装(setWrapText(false))。

在视图更改(从开始到调试)时,要显示的节点(classTabpane或classTabPane已分配的splitPane)将被分配到根边框的中心区域。

问题是当我更改视图(从开始到调试)时,文本被包装在textarea中,这实际上不应该发生。 但点击textarea后,文本将被解开。

有没有人知道文本在视图更改中包含的内容是什么?

如果缺少任何有用的信息,请说明。 我会立即加上它。

图片示例可在代码段

下找到
private void selectDebugView(String _id) {
    SplitPane splitPane_horizontal;
    SplitPane splitPane_vertical;
    switch (_id) {
    case "debugView1":
        splitPane_vertical = new SplitPane();
        splitPane_horizontal = new SplitPane();
        splitPane_vertical.setOrientation(Orientation.VERTICAL);
        splitPane_horizontal.setOrientation(Orientation.HORIZONTAL);
        splitPane_vertical.getItems().addAll(debugInspectorTabPane, consoleDebugTabPane);
        splitPane_horizontal.getItems().addAll(classTabPane, splitPane_vertical);
        borderPane_root.setCenter(splitPane_horizontal);
        break;
    case "debugView2":
        splitPane_horizontal = new SplitPane();
        splitPane_horizontal.getItems().addAll(classTabPane, debugInspectorTabPane, consoleDebugTabPane);
        splitPane_horizontal.setDividerPositions(0.33f, 0.66f);
        borderPane_root.setCenter(splitPane_horizontal);
        break;
    case "debugView3":
        splitPane_horizontal = new SplitPane();
        splitPane_vertical = new SplitPane();
        splitPane_horizontal.setOrientation(Orientation.HORIZONTAL);
        splitPane_vertical.setOrientation(Orientation.VERTICAL);
        splitPane_horizontal.getItems().addAll(debugInspectorTabPane, consoleDebugTabPane);
        splitPane_vertical.getItems().addAll(classTabPane, splitPane_horizontal);
        borderPane_root.setCenter(splitPane_vertical);
        break;
    }
}

private void changeView(String _id) {
    switch (_id) {
    case "tab_menuPanelStart":
        borderPane_root.setCenter(classTabPane);
        break;
    case "tab_menuPanelDebug":
        selectDebugView(Settings.__getInstance().getDebugViewID());
        break;
    case "tab_menuPanelServer":
        borderPane_root.setCenter(consoleServerTabPane);
        break;
    }
}

这是一个例子:

Start view

Debug view

0 个答案:

没有答案