我有一個用戶可調整大小的圖表。當圖表變小時,CategoryAxis會旋轉,並且您無法再看到大部分類別標籤。下面是一個GIF圖片,展示問題:JavaFX圖表 - 類別代碼調整問題
有沒有辦法停止轉動的標籤?
我知道我可以添加一個偵聽器到旋轉屬性,如果旋轉改變,將它旋轉回0。但是,當我這樣做時,它不會阻止間距調整,因此標籤會被切斷(您只能看到標籤的最後幾個字符)。
這裏是所包含的GIF的代碼,你會看到問題,因爲你改變窗口大小:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.BarChart;
import javafx.scene.chart.CategoryAxis;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart;
import javafx.stage.Stage;
public class HorizontalBarExample extends Application {
@Override
public void start(Stage stage) {
NumberAxis xAxis = new NumberAxis();
CategoryAxis yAxis = new CategoryAxis();
BarChart<Number, String> bc = new BarChart<Number, String>(xAxis, yAxis);
bc.setBarGap(0d);
bc.setCategoryGap(0);
xAxis.setTickLabelRotation(90);
yAxis.tickLabelRotationProperty().set(0d);
XYChart.Series<Number, String> series1 = new XYChart.Series<>();
series1.setName("example");
for (int i = 0; i < 10; i++)
series1.getData().add(new XYChart.Data<Number, String>(Math.random() * 5000, "long data label number" + i));
bc.getData().add(series1);
Scene scene = new Scene(bc, 800, 600);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
我會說,這是一個錯誤:如果空間變小,以水平顯示的所有標籤的任何類別軸應該做的,旋轉的還不是可行的選擇(離開每第n個可能一個 - 或沒有 - 或沒有顯示,直到鼠標懸停在該類別上,然後只顯示那一個) – kleopatra