爱收集资源网

Java代码中必备的滚动窗格:FXML

网络 2023-06-26 10:03

java怎么设置JavaFX滚动窗棂的最大大小,并使滚动条仅在须要时显示?

4月,3周Questions&Answers3544

我正在尝试建立一个单一窗口应用程序,便于更好地了解JavaFX。这是十分好和容易,直至我没有步入细节

我有一个AnchorPane作为其他GUI元素的主要容器。我意识到,它对我的电脑笔记本屏幕来说太高了(805象素高,600象素宽),所以我决定在缩小窗口时,将锚烷置于滚动窗棂中,便于有滚动条。AnchorPane是在FXML中配置的,FXML是Java源代码中的滚动窗棂

主播:

java设置面板滚动条_鼠标滚动设置_三星s4桌面壁纸滚动怎么设置啊?


。。。

滚动窗棂:

public class ScrollableMainFrame extends ScrollPane {
public ScrollableMainFrame(Pane content) {
    super();
    // set scrollbar policy
    this.setHbarPolicy(ScrollBarPolicy.AS_NEEDED);
    this.setVbarPolicy(ScrollBarPolicy.AS_NEEDED);
    // set the main window in the scroll pane
    this.setContent(content);
}

}

之后我加载FXML,将AnchorPane装入滚动窗棂中,让它显示:

三星s4桌面壁纸滚动怎么设置啊?_鼠标滚动设置_java设置面板滚动条

private final void initWindow() {
    try {
        // Load main window layout from fxml file.
        URL mainWindowURL = MainApp.class.getResource("view/MainWindow.fxml");
        FXMLLoader loader = new FXMLLoader(mainWindowURL, guiLabels);
        mainWindow = (AnchorPane) loader.load();
        MainWindowController controller = loader.getController();
        controller.setMainAppAndGUILabels(this);
        // create a scrollable Pane, and put everything inside
        scrollableMainFrame = new ScrollableMainFrame(mainWindow);
        // Show the scene containing the layout.
        Scene scene = new Scene(scrollableMainFrame);
        primaryStage.setScene(scene);            
        primaryStage.show();
    } catch (IOException e) {
        LOG.error("Error loading GUI!", e);
    }
}

到目前为止还不错,窗口显示下来,并没有滚动条,直至我不缩小它。但我想最大化我的窗口,由于它没有意义使它更大(锚烷有一个固定的大小),只有更小。我早已弄明白了,必须设置PrimaryStage的最大大小来限制实际窗口,限制滚动窗棂没有疗效

问题是:假如我想为PrimaryStage设置MaxHeight和MaxWidth,我只会得到不想要的结果。假如我想让我的PrimaryStage拥有与主播相同的最大大小,窗口要么不显示,要么有滚动条

假如我把这条线放进我的初始窗口方式

        // Show the scene containing the layout.
        Scene scene = new Scene(scrollableMainFrame);
        primaryStage.setScene(scene);
        // set max window size
        primaryStage.setMaxHeight(scrollableMainFrame.getHeight());
        primaryStage.show();

哪些也不会出现,由于很显著“scrollableMainFrame”在那一点上没有低点

鼠标滚动设置_三星s4桌面壁纸滚动怎么设置啊?_java设置面板滚动条

假如我把setMaxHeight()置于末尾

    primaryStage.setScene(scene);
    primaryStage.show();
    // set max window size
    primaryStage.setMaxHeight(scrollableMainFrame.getHeight());

之后将有效地设置最大高度,但滚动条会出现并保持可见,虽然窗口有其完整大小

有人晓得为何吗?假如滚动条仍然打开,我怎么设置窗口的最大大小

(像primaryStage.setMaxHeight(scrollableMainFrame.getHeight()+15);这样简单地向max添加数字根本没有任何作用,滚动条一直存在!)

java设置面板滚动条
上一篇:CASIO fx-991ES:解非线性方程 下一篇:没有了