JavaFX 如何隐藏Pagination的按钮?

html-css09

JavaFX 如何隐藏Pagination的按钮?,第1张

以Pagination的按钮隐藏为例: 首先打开FX的CSS文档,了解Pagination的结构, 找到按钮等所在的子组件,然后让子组件隐藏即可

FXCSS文档 Pagination的结构如下:

Pagination的结构

所以我们隐藏掉pagination-control这个子组件, 就可以隐藏各种按钮,和最底下的文字标签

具体的代码实现:

demo.css文件的源码:

.pagination .pagination-control{

visibility: hidden

}

java文件的源码:

import javafx.application.Application

import javafx.scene.*

import javafx.scene.control.Pagination

import javafx.scene.layout.BorderPane

import javafx.scene.text.Text

import javafx.stage.Stage

import javafx.util.Callback

public class PaginationDemo extends Application{

public static void main(String[] args) {

launch(args)

}

@Override

public void start(Stage primaryStage) throws Exception {

Pagination pageination=new Pagination(10)

//生成页面填充分页组件

pageination.setPageFactory(new Callback<Integer, Node>() {

@Override

public Node call(Integer param) {

BorderPane pane=new BorderPane()

pane.setCenter(new Text("第"+(param+1)+"页"))

pane.setPrefSize(300,300)

return pane

}

})

BorderPane root = new BorderPane()

root.setCenter(pageination)

//方法一: 用CSS的方式隐藏按钮

//优点: 可以不用管该组件目前的状态是否显示

//缺点: 需要一个CSS文件

//pageination.getStylesheets().add(getClass().getResource("demo.css").toExternalForm())

Scene scene = new Scene(root)

primaryStage.setTitle("分页组件")

primaryStage.setScene(scene)

primaryStage.show()

//方法二: 等组件显示出来后,寻找到子组件(按钮),然后设置为隐藏

//优点: 无需css文件

//缺点: 需要先显示组件,然后才能查找到子组件

pageination.lookup(".pagination-control").setVisible(false)

}

}

效果图

所以, 建议还是系统的学习下javaFX,比如fxcss (和HTML的CSS文件比较类似) 以及FXML(结构类似HTML) 稍微阅读下组件的源代码即可

用 tr:hover,不过低版本ie只支持a:hover,tr:hover不会生效,如果要兼顾低版本ie的话需要用javascript。你这个效果只是个小视觉辅助,低版本ie完全可以不管。

<style>

table{background: #666}

tr:hover{background: #ccc}

</style>

<table width="500">

<tr>

<td>1</td>

<td>2</td>

</tr>

<tr>

<td>3</td>

<td>4</td>

</tr>

</table>