java - 访问 JFrame 组件

标签 java swing jframe jfreechart

如何访问放置在 JFrame 上的 XYSeriesXYPlot?当然,我可以使用变量名称 seriesplot,但我的问题是指访问这些组件的功能方式,即 f.getContentPane()...当函数返回 JFrame 时这很有用。

JFrame f = new JFrame(title);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLayout(new BorderLayout(0, 5));
XYSeries series = new XYSeries("");
XYDataset data = createDataset(series,0,indf,oldpop);
JFreeChart chart = ChartFactory.createScatterPlot(title, xtitle, ytitle, data, PlotOrientation.VERTICAL, false, true, false);
XYPlot plot = chart.getXYPlot();
XYLineAndShapeRenderer renderer =
                (XYLineAndShapeRenderer) plot.getRenderer();
renderer.setBaseShapesVisible(true);          plot.getDomainAxis().setStandardTickUnits(NumberAxis.createIntegerTickUnits());
ChartPanel chartPanel = new ChartPanel(chart);
f.add(chartPanel, BorderLayout.CENTER);
chartPanel.setMouseWheelEnabled(true);
chartPanel.setHorizontalAxisTrace(true);
chartPanel.setVerticalAxisTrace(true);
JPanel panel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
f.add(panel, BorderLayout.SOUTH);

最佳答案

ChartPanelJComponent,它呈现 JFreeChartXYSeriesXYPlot 都是组件,这些对象由 JFreeChart 使用。由于它们不是组件,因此您无法通过遍历组件层次结构来访问它们,必须从 ChartPanelJFreeChart 获取它们。

在组件层次结构中找到ChartPanel,使用getChart()获取JFreeChart对象,然后从中获取你想要的对象,就像您在上面的代码中所做的那样:

XYPlot plot = chart.getXYPlot();

关于java - 访问 JFrame 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16166095/

相关文章:

java - 获取固定大小的 GridLayout

java - 在有限的空间内显示图像的特定部分?

java - 使用java的Azure文件图像路径

java - 原始转换代码 |需要帮助才能理解

java - 从文本区域生成可点击事件

java - 与 JLayeredPane 后面的 JPanel 交互

java - 使用 Swing 应用程序框架的组件资源注入(inject)问题

java - 如何将对象分解为 byte[]?

java - 在 Android 中手动添加外部库时无法导入语句

java - JFrame从一个类到另一个类的内部框架