Javafx 2 javafx2.x:x和Y轴设置
下面的代码在垂直分割的拆分窗格中绘制2个XY折线图 我的问题: 我希望在底部同时有Y轴和一个X轴(仅在下方图形上有X轴)Javafx 2 javafx2.x:x和Y轴设置,javafx-2,linechart,splitpanel,Javafx 2,Linechart,Splitpanel,下面的代码在垂直分割的拆分窗格中绘制2个XY折线图 我的问题: 我希望在底部同时有Y轴和一个X轴(仅在下方图形上有X轴) 公共类XyChartInSplit扩展应用程序{ SplitPane splitPane1=null; @凌驾 公众假期开始(阶段){ 舞台布景标题(“线条图”); final CategoryAxis Xaxi1=新CategoryAxis(); 最终数值轴yAxis1=新数值轴(1,21,0.1); yAxis1.设置单元(1); yAxis1.setPrefWidth(
公共类XyChartInSplit扩展应用程序{
SplitPane splitPane1=null;
@凌驾
公众假期开始(阶段){
舞台布景标题(“线条图”);
final CategoryAxis Xaxi1=新CategoryAxis();
最终数值轴yAxis1=新数值轴(1,21,0.1);
yAxis1.设置单元(1);
yAxis1.setPrefWidth(35);
yAxis1.setMinorTickCount(10);
yAxis1.setTickLabelFormatter(新编号Axis.DefaultFormatter(yAxis1)){
@凌驾
公共字符串toString(数字对象){
字符串标签;
label=String.format(“%7.2f”,object.floatValue());
退货标签;
}
});
最终线形图线形图1=新线形图(xAxis1,yAxis1);
lineChart1.SetCreateSymbles(假);
线形图1.setAlternativeRowFillVisible(假);
lineChart1.setLegendVisible(假);
线形图1.setAnimated(假);
XYChart.Series系列1=新的XYChart.Series();
series1.getData().add(新的XYChart.Data(“Jan”,1));
series1.getData().add(新的XYChart.Data(“Feb”,2));
series1.getData().add(新的XYChart.Data(“Mar”,1.5));
series1.getData().add(新的XYChart.Data(“Apr”,3));
series1.getData().add(新的XYChart.Data(“May”,2.5));
series1.getData().add(新的XYChart.Data(“Jun”,5));
series1.getData().add(新的XYChart.Data(“Jul”,4));
series1.getData().add(新的XYChart.Data(“Aug”,8));
series1.getData().add(新的XYChart.Data(“Sep”,6.5));
series1.getData().add(新的XYChart.Data(“Oct”,13));
series1.getData().add(新的XYChart.Data(“Nov”,10));
series1.getData().add(新的XYChart.Data(“Dec”,20));
//最终边界窗格pane1=新边界窗格();
//窗格1.设置中心(线形图1);
lineChart1.getData().addAll(series1);
final CategoryAxis xAxis2=新CategoryAxis();
最终数值轴yAxis2=新数值轴(1,21,0.1);
yAxis2.设置单元(1);
yAxis2.setPrefWidth(35);
yAxis2.setMinorTickCount(10);
yAxis2.setTickLabelFormatter(新编号Axis.DefaultFormatter(yAxis2)){
@凌驾
公共字符串toString(数字对象){
字符串标签;
label=String.format(“%7.2f”,object.floatValue());
退货标签;
}
});
最终线形图线形图2=新线形图(xAxis2,yAxis2);
lineChart2.SetCreateSymbles(假);
线形图2.setAlternativeRowFillVisible(假);
线形图2.setLegendVisible(假);
线形图2.设置动画(假);
XYChart.Series系列2=新的XYChart.Series();
series2.getData().add(新的XYChart.Data(“Jan”,1));
series2.getData().add(新的XYChart.Data(“Feb”,3));
series2.getData().add(新的XYChart.Data(“Mar”,1.5));
series2.getData().add(新的XYChart.Data(“Apr”,3));
series2.getData().add(新的XYChart.Data(“May”,4.5));
series2.getData().add(新的XYChart.Data(“Jun”,5));
series2.getData().add(新的XYChart.Data(“Jul”,4));
series2.getData().add(新的XYChart.Data(“Aug”,8));
series2.getData().add(新的XYChart.Data(“Sep”,16.5));
series2.getData().add(新的XYChart.Data(“Oct”,13.9));
series2.getData().add(新的XYChart.Data(“Nov”,17));
series2.getData().add(新的XYChart.Data(“Dec”,20));
//最终边框窗格pane2=新边框窗格();
//窗格2.设置中心(线形图2);
lineChart2.getData().addAll(series2);
splitPane1=新的SplitPane();
splitPane1.设置方向(方向.垂直);
splitPane1.getItems().addAll(lineChart1);
splitPane1.setDividerPosition(0,1);
场景=新场景(拆分窗格1、800、600);
Platform.runLater(新的Runnable(){
@凌驾
公开募捐{
双分裂;
splitPane1.getItems().addAll(lineChart2);
ObservableList splitDiv=splitPane1.getDividers();
percSplit=1/(双精度)(splitDiv.size()+1);
对于(inti=0;i
}您可能想投票支持此功能请求:这里提到了一个想法:Hi Remko谢谢您的建议
public class XyChartInSplit extends Application {
SplitPane splitPane1 = null;
@Override
public void start(Stage stage) {
stage.setTitle("Line plot");
final CategoryAxis xAxis1 = new CategoryAxis();
final NumberAxis yAxis1 = new NumberAxis(1, 21,0.1);
yAxis1.setTickUnit(1);
yAxis1.setPrefWidth(35);
yAxis1.setMinorTickCount(10);
yAxis1.setTickLabelFormatter(new NumberAxis.DefaultFormatter(yAxis1){
@Override
public String toString(Number object){
String label;
label = String.format("%7.2f", object.floatValue());
return label;
}
});
final LineChart<String, Number>lineChart1 = new LineChart<String, Number>(xAxis1, yAxis1);
lineChart1.setCreateSymbols(false);
lineChart1.setAlternativeRowFillVisible(false);
lineChart1.setLegendVisible(false);
lineChart1.setAnimated(false);
XYChart.Series series1 = new XYChart.Series();
series1.getData().add(new XYChart.Data("Jan", 1));
series1.getData().add(new XYChart.Data("Feb", 2));
series1.getData().add(new XYChart.Data("Mar", 1.5));
series1.getData().add(new XYChart.Data("Apr", 3));
series1.getData().add(new XYChart.Data("May", 2.5));
series1.getData().add(new XYChart.Data("Jun", 5));
series1.getData().add(new XYChart.Data("Jul", 4));
series1.getData().add(new XYChart.Data("Aug", 8));
series1.getData().add(new XYChart.Data("Sep", 6.5));
series1.getData().add(new XYChart.Data("Oct", 13));
series1.getData().add(new XYChart.Data("Nov", 10));
series1.getData().add(new XYChart.Data("Dec", 20));
//final BorderPane pane1 = new BorderPane();
//pane1.setCenter(lineChart1);
lineChart1.getData().addAll(series1);
final CategoryAxis xAxis2 = new CategoryAxis();
final NumberAxis yAxis2 = new NumberAxis(1, 21,0.1);
yAxis2.setTickUnit(1);
yAxis2.setPrefWidth(35);
yAxis2.setMinorTickCount(10);
yAxis2.setTickLabelFormatter(new NumberAxis.DefaultFormatter(yAxis2){
@Override
public String toString(Number object){
String label;
label = String.format("%7.2f", object.floatValue());
return label;
}
});
final LineChart<String, Number>lineChart2 = new LineChart<String, Number>(xAxis2, yAxis2);
lineChart2.setCreateSymbols(false);
lineChart2.setAlternativeRowFillVisible(false);
lineChart2.setLegendVisible(false);
lineChart2.setAnimated(false);
XYChart.Series series2 = new XYChart.Series();
series2.getData().add(new XYChart.Data("Jan", 1));
series2.getData().add(new XYChart.Data("Feb", 3));
series2.getData().add(new XYChart.Data("Mar", 1.5));
series2.getData().add(new XYChart.Data("Apr", 3));
series2.getData().add(new XYChart.Data("May", 4.5));
series2.getData().add(new XYChart.Data("Jun", 5));
series2.getData().add(new XYChart.Data("Jul", 4));
series2.getData().add(new XYChart.Data("Aug", 8));
series2.getData().add(new XYChart.Data("Sep", 16.5));
series2.getData().add(new XYChart.Data("Oct", 13.9));
series2.getData().add(new XYChart.Data("Nov", 17));
series2.getData().add(new XYChart.Data("Dec", 20));
// final BorderPane pane2 = new BorderPane();
//pane2.setCenter(lineChart2);
lineChart2.getData().addAll(series2);
splitPane1 = new SplitPane();
splitPane1.setOrientation(Orientation.VERTICAL);
splitPane1.getItems().addAll(lineChart1);
splitPane1.setDividerPosition(0, 1);
Scene scene = new Scene(splitPane1, 800, 600);
Platform.runLater(new Runnable() {
@Override
public void run() {
double percSplit;
splitPane1.getItems().addAll(lineChart2);
ObservableList<SplitPane.Divider> splitDiv = splitPane1.getDividers();
percSplit = 1/(double)(splitDiv.size()+1);
for (int i = 0; i< splitDiv.size(); i++) {
splitPane1.setDividerPosition(i, percSplit);
percSplit += 1/(double)(splitDiv.size()+1);
}
}
});
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}