【发布时间】:2021-10-21 13:30:06
【问题描述】:
在某些情况下我需要完全隐藏分页控件中的换页按钮,但是隐藏区域可能已经被一个页面占据了,也就是向下扩展。
在这个带有分页的窗口示例中,我想隐藏灰色区域并将天空色区域放大到隐藏区域。
我该怎么做?
我试过了:
package javafxpagination;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.Pagination;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class TestPagination extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Test pagination");
Pagination pagination = new Pagination();
pagination.setPageCount(4);
pagination.setMaxPageIndicatorCount(4);
pagination.setCurrentPageIndex(0);
pagination.setPageFactory((pageIndex) -> {
Pane pagePane = new Pane();
pagePane.setPrefWidth(600);
pagePane.setPrefHeight(400);
pagePane.setStyle("-fx-background-color: #DDF1F8;"); //sky color
Button button = new Button("Hide/show page buttons");
button.setOnAction(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent event)
{
HBox paginationHBox = (HBox)pagination.lookup(".control-box");
Node paginationControl = pagination.lookup(".pagination-control");
paginationControl.setStyle("-fx-background-color: gray;");
paginationControl.setVisible(!paginationControl.isVisible()); //switch visibility
paginationControl.setManaged(paginationControl.isVisible());
paginationControl.minHeight(0.0);
paginationControl.prefHeight(0.0);
paginationControl.maxHeight(0.0);
}
});
pagePane.getChildren().add(button);
return pagePane;
});
VBox vBox = new VBox(pagination);
Scene scene = new Scene(vBox, 800, 600);
primaryStage.setScene(scene);
primaryStage.show();
}
}
但它没有隐藏灰色区域,也没有拉伸天空色的页面区域。
【问题讨论】:
-
为什么?你增加了空白空间,你的用户就会失去对显示哪个页面的控制..
-
@kleopatra 我需要隐藏按钮,因为根据某些条件,我只显示一页(其他页面不可用)。当然,我可以在这个地方插入一个面板,而不是使用一页分页,但我必须考虑哪种解决方案会更好。 ;-)
标签: button javafx pagination