TableView 内置了滚动条,但是为什么我看不到垂直滚动条呢?
这是我将 TableView 放入 HBox 时的代码:
HBox HBox_tabelDatabase = new HBox();
HBox_tabelDatabase.setAlignment(Pos.TOP_CENTER);
HBox_tabelDatabase.setPadding(new Insets(5,5,5,5));
HBox_tabelDatabase.setStyle( "-fx-border-style: solid;"
+ "-fx-border-width: 1;"
+ "-fx-border-color: #ADDFFF;"
+ "-fx-accent: #ADDFFF;"
+ "-fx-accent: #ADDFFF;"
+ "-fx-base: #ADDFFF;"
+ "-fx-background: white;"
+ "-fx-control-inner-background: white;"
+ "-fx-focus-color: #ADDFFF;"
+ "-fx-dark-text-color: deepskyblue;"
+ "-fx-mid-text-color: black;"
+ "-fx-light-text-color: blue;");
Tab tab6 = new Tab();
HBox_tabelDatabase.getChildren().add(tableview);
HBox_tabelDatabase.setPrefHeight(200);
tab6.setText("Tabel Database");
tab6.setContent(HBox_tabelDatabase);
这是我定义 TableView 及其列和行的代码:
private void buildData(){
Connection c ;
data = FXCollections.observableArrayList();
try{
c = DBConnect.connect();
//SQL FOR SELECTING ALL OF APP.tabelJembatan
String SQL = "SELECT * from APP.tabelJembatan";
//ResultSet
ResultSet rs = c.createStatement().executeQuery(SQL);
/**********************************
* TABLE COLUMN ADDED DYNAMICALLY *
**********************************/
for(int i=0 ; i<rs.getMetaData().getColumnCount(); i++){
//We are using non property style for making dynamic table
final int j = i;
TableColumn col = new TableColumn(rs.getMetaData().getColumnName(i+1));
col.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList,String>,ObservableValue<String>>(){
public ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty(param.getValue().get(j).toString());
}
});
tableview.getColumns().addAll(col);
col.setMinWidth(200);
System.out.println("Column ["+i+"] ");
}
/********************************
* Data added to ObservableList *
********************************/
while(rs.next()){
//Iterate Row
ObservableList<String> row = FXCollections.observableArrayList();
for(int i=1 ; i<=rs.getMetaData().getColumnCount(); i++){
//Iterate Column
row.add(rs.getString(i));
}
System.out.println("Row [1] added "+row );
data.add(row);
}
//FINALLY ADDED TO TableView
tableview.setItems(data);
}catch(Exception e){
e.printStackTrace();
System.out.println("Error on Building Data");
}
图片用于:TableView 上的垂直滚动条不可见
然后,我尝试将 TableView 放入 ScrollPane,但是当我垂直滚动数据时,标题也在移动。我的意思是,头球没有留在那个位置。我使用了这段代码:
ScrollPane scrollpane1 = new ScrollPane();
scrollpane1.setContent(tableview);
图像:当我垂直滚动时,标题也在移动
当我垂直滚动时,有没有办法让第一行(标题)保持在那个位置?