2012-07-04 167 views

回答

3

ScrollBar寬度基於ScrollPane的字體大小。

將ScrollPane的字體大小設置爲很大,並且(如果需要)將ScrollPane內容節點的字體大小恢復爲正常。

ScrollPane scrollPane = new ScrollPane(); 
scrollPane.setContent(content); 
scrollPane.setStyle("-fx-font-size: 40px;"); // set the font size to something big. 
content.setStyle("-fx-font-size: 11px;");  // reset the region's font size to the default. 

這是一個完整的可執行示例,基於我對前面的forum question on the same topic的回答。

import javafx.application.Application; 
import javafx.collections.*; 
import javafx.scene.*; 
import javafx.stage.Stage; 
import javafx.scene.chart.*; 
import javafx.scene.control.ScrollPane; 
import javafx.scene.layout.Region; 

public class BigScrollBars extends Application { 
    @Override public void start(Stage stage) { 
    // create a chart. 
    ObservableList<PieChart.Data> pieChartData = 
     FXCollections.observableArrayList(
     new PieChart.Data("Grapefruit", 13), 
     new PieChart.Data("Oranges", 25), 
     new PieChart.Data("Plums", 10), 
     new PieChart.Data("Pears", 22), 
     new PieChart.Data("Apples", 30) 
    ); 
    final PieChart chart = new PieChart(pieChartData); 
    chart.setTitle("Imported Fruits"); 
    chart.setMinSize(Region.USE_PREF_SIZE, Region.USE_PREF_SIZE); 
    chart.setPrefSize(800,600); 

    // create a scrollpane. 
    ScrollPane scrollPane = new ScrollPane(); 
    scrollPane.setContent(chart); 
    scrollPane.setStyle("-fx-font-size: 40px;"); // set the font size to something big. 
    chart.setStyle("-fx-font-size: 11px;");  // reset the region's font size to the default. 

    // show the scene. 
    stage.setScene(new Scene(scrollPane, 400, 300)); 
    stage.show(); 
    } 

    public static void main(String[] args) { launch(args); } 
} 
0

以下解決方案爲我工作:

​​