1

好的,我是 javafx 新手,只是尝试构建自己的 java IDE。

IDE 有一个视图(“开始”选项卡),您可以在其中创建和编辑类,还有一个调试视图(“调试”选项卡),可以在其中调试此类。(用于使用 JDPA 调试即时消息)。

“开始”视图是一个简单的选项卡窗格(classtabPane),在根边框窗格的中心区域由几个选项卡组成。

“调试”视图包含一个拆分窗格,当视图发生更改时,该拆分窗格分配了 classTabPane 和其他节点。

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

每个类都是一个单独的选项卡,其中嵌入了一个文本区域。这些 textAreas 的每个文本都不应被换行 (setWrapText(false))。

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

问题是当我更改视图(从开始到调试)时,文本被包裹在文本区域中,这实际上不应该发生。但是在文本区域中单击后,文本会被展开。

有没有人知道文本包含在视图更改中可能是什么?

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

图片示例可以在代码片段下找到

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;
    }
}

这里有一个例子:

开始视图

调试视图

4

0 回答 0