- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的窗口有以下 Controller :
package window;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.chart.BarChart;
import javafx.scene.chart.CategoryAxis;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart;
import java.util.Map;
import java.util.SortedMap;
public class StatisticsController {
@FXML
private BarChart<String, Number> barChartHistogram;
private SortedMap<String, Integer> _points;
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis();
public void onLoad(SortedMap<String, Integer> points) {
barChartHistogram = new BarChart<String, Number>(xAxis,yAxis);
barChartHistogram.setCategoryGap(0);
barChartHistogram.setBarGap(0);
xAxis.setLabel("Numer indeksu");
yAxis.setLabel("Ilość punktów");
XYChart.Series series = new XYChart.Series();
series.setName("Histogram");
for (Map.Entry<String, Integer> p: points.entrySet()) {
series.getData().add(new XYChart.Data(p.getKey(), p.getValue()));
}
barChartHistogram.getData().addAll(series);
_points = points;
}
@FXML
private void buttonShowPressed(ActionEvent event) {
xAxis.setLabel("Numer indeksu");
yAxis.setLabel("Ilość punktów");
barChartHistogram = new BarChart<String, Number>(xAxis,yAxis);
barChartHistogram.setCategoryGap(0);
barChartHistogram.setBarGap(0);
barChartHistogram.setTitle("XDDDDDDDDDDDDDDD");
barChartHistogram.setMaxHeight(1000);
XYChart.Series series = new XYChart.Series();
series.setName("Histogram");
for (Map.Entry<String, Integer> p: _points.entrySet()) {
series.getData().add(new XYChart.Data(p.getKey(), p.getValue()));
}
barChartHistogram.getData().addAll(series);
}
}
此窗口的 .fxml
文件:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.chart.BarChart?>
<?import javafx.scene.chart.CategoryAxis?>
<?import javafx.scene.chart.NumberAxis?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/9.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="window.StatisticsController">
<children>
<BarChart fx:id="barChartHistogram" layoutX="40.0" layoutY="14.0" prefHeight="372.0" prefWidth="500.0">
<xAxis>
<CategoryAxis side="BOTTOM" />
</xAxis>
<yAxis>
<NumberAxis side="LEFT" />
</yAxis>
</BarChart>
<Button fx:id="buttonShow" layoutY="337.0" mnemonicParsing="false" onAction="#buttonShowPressed" text="Button" />
</children>
</AnchorPane>
现在的问题是,当我按下按钮时,没有任何变化(onLoad()
方法用于测试 onLoad
类似 C# 的行为)。条形图保持不变,没有数据、标签或标题(我检查了调试器中的数据,barCharHistogram
对象在其 data
属性下有我的数据)。我做错了什么愚蠢的事吗?我怎样才能让它像重画条形图一样?
最佳答案
您已经在 FXML 中定义了所需的一切。您不应该在 Controller 中创建新图表或新轴。
将 fx:id
添加到坐标区:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.chart.BarChart?>
<?import javafx.scene.chart.CategoryAxis?>
<?import javafx.scene.chart.NumberAxis?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/9.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="window.StatisticsController">
<children>
<BarChart fx:id="barChartHistogram" layoutX="40.0" layoutY="14.0" prefHeight="372.0" prefWidth="500.0">
<xAxis>
<CategoryAxis fx:id="xAxis" side="BOTTOM" />
</xAxis>
<yAxis>
<NumberAxis fx:d="yAxis" side="LEFT" />
</yAxis>
</BarChart>
<Button fx:id="buttonShow" layoutY="337.0" mnemonicParsing="false" onAction="#buttonShowPressed" text="Button" />
</children>
</AnchorPane>
然后你就可以做
public class StatisticsController {
@FXML
private BarChart<String, Number> barChartHistogram;
private SortedMap<String, Integer> _points;
@FXML
private CategoryAxis xAxis ;
@FXML
private NumberAxis yAxis ;
@FXML
private void buttonShowPressed(ActionEvent event) {
xAxis.setLabel("Numer indeksu");
yAxis.setLabel("Ilość punktów");
barChartHistogram.setCategoryGap(0);
barChartHistogram.setBarGap(0);
barChartHistogram.setTitle("XDDDDDDDDDDDDDDD");
barChartHistogram.setMaxHeight(1000);
XYChart.Series series = new XYChart.Series();
series.setName("Histogram");
for (Map.Entry<String, Integer> p: _points.entrySet()) {
series.getData().add(new XYChart.Data(p.getKey(), p.getValue()));
}
barChartHistogram.getData().addAll(series);
}
}
关于JavaFX BarChart 不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48994521/
我为 BarChart 设置了 OnChartValueSelectedListener 但是当我点击任何条形图或 BarChart 中的任何地方时只有 onNothingSelected() 正在调
我正在尝试动态设置 BarChart Series 颜色。 我希望相同的系列名称始终具有相同的颜色。它在图表中并不总是相同的系列名称,这就是为什么我不能依赖图表中的位置(默认情况下颜色在数据列表中的相
我的窗口有以下 Controller : package window; import javafx.event.ActionEvent; import javafx.fxml.FXML; impor
如何更改 JavaFX BarChart 中条形的颜色? 我找不到通过 css setStyle 方法改变颜色的方法。 最佳答案 你可以使用css设置条形颜色 .default-color0.char
我有一个 flutter 应用程序,需要 Bar chart我可以在其中单击栏来打开包含相关信息的新页面。 我该怎么做? /// Bar chart example charts.BarChart(
我有一个 flutter 应用程序,需要 Bar chart我可以在其中单击栏来打开包含相关信息的新页面。 我该怎么做? /// Bar chart example charts.BarChart(
我在使用条形图时遇到问题。我为 Primefaces 编写了一个 barCharts 示例,但在页面上它们不可见。 这里是 Bean 类: import java.io.Serializable; i
我正在使用 Flot API 在我的应用程序中以图形方式绘制数据。我能够绘制数据并且能够实现工具提示。但我在使用工具提示时遇到问题。它显示 x 轴上的标签值“未定义”。 $(function () {
我想我已经尝试了所有方法,但我无法解决这个问题。 对于每家公司,我需要用该公司的颜色分组并显示 3 个条形图,并为每个条形图显示注释。 我只能得到这样的东西: 但是我真正需要的是这样的: 我已经花了超
我在后台的 iOS 应用程序中使用 NSTimer,它每 30 秒在数组中保存一些数据。该应用程序以折线图显示最后 10 个值(5 分钟的值)。 我的问题是当应用程序不在屏幕上时,在后台使用每 30
在我的项目中我使用 GWT 图表 - 我想从所有条开始的地方删除垂直线,并减少条之间的空间。是否可以?我已经尝试了几次,但没有成功。这是我的 Java 代码: BarChart chart
我的窗口有以下 Controller : package window; import javafx.event.ActionEvent; import javafx.fxml.FXML; impor
我的数据从 750 000 - 1 000 000+ 变化,所以我实际上不需要看到低于 750 000 的值。 如果我只是使 y[i] - 750 000 那么还有另一个问题(在 AxisY 上显示最
我正在创建谷歌条形图,它从数据库中获取数据。问题是数据包含低于“1”的值,如 0.6、0.7 等它不会出现在图表上。图表仅显示从 1 开始的值。 google.load('visualization
我正在使用 MPAndroidChart 在我的 Android 应用程序中绘制图表。 一个要求是我需要从非零 y 位置开始绘制条形图,如 this 中所建议的那样.所以我同样使用 CandleSti
是否可以将 UILabel 设置为条形图的水平条? (CorePlot) 谢谢! 最佳答案 如果您只需要标记其中一个条形,您可以使用 CPTPlotSpaceAnnotation。将 anchorPl
我正在使用 MPAndroidChart 库作为条形图,其中,我使用 chart.setDrawValueAboveBar(false) 来设置条形内部的条形值,现在我想要在条形内部垂直显示值。 请帮
我在 Google 中找不到它,所以我在这里询问。如何设置取决于 PrimeFaces BarChart 值的条形颜色。例如,如果我的值小于 50%,则条形图为红色。也许有人有类似的问题并且可以给我发
正如标题所说。基本上我有一个 ArrayList,其中 DiceRoll 是一个在 TableView 中成功使用的类,用于在值更改时更新值。 public class DiceRoll { priv
我需要从 BarChart 中删除右边的图例。 这是我的代码。 mChart = (BarChart) rootView.findViewById(R.id.chart1); mCha
我是一名优秀的程序员,十分优秀!