pde*_*del 1 java swing jfreechart
我试图在一个窗口中显示多个jfreecharts.显然,使用包含的ChartFrame无法实现这一点,因此我尝试将同一图表的多个副本添加到无法正常工作的JFrame中.有任何想法吗?
JFrame frame = new JFrame("Chart");
frame.getContentPane().add(new ChartPanel(chart1));
frame.getContentPane().add(new ChartPanel(chart2));
frame.pack();
frame.setVisible(true);
Run Code Online (Sandbox Code Playgroud)
使用此代码,我只在JFrame中获得一个图表.
编辑:我添加了另一个数据集和图表,但它仍然只显示其中一个.
你的问题的原因是布局frame.getContentPane().JFrame内容窗格中的默认布局- BorderLayout.了解更多关于BorderLayout 这里.这个操作
frame.getContentPane().add(new ChartPanel(chart));
Run Code Online (Sandbox Code Playgroud)
等于
frame.getContentPane().add(new ChartPanel(chart), BorderLayout.CENTER);
Run Code Online (Sandbox Code Playgroud)
并添加ChartPanel到内容窗格的CENTER区域.其次ChartPanel你也加入了CENTER区域.然后将两个组件添加到同一区域,最后添加的组件隐藏所有先前添加的组件.因此,第二个ChartPanel隐藏了第一个.
您需要更改布局frame.getContentPane().
您可以将同一图表用于两个ChartPanel.尝试将代码更改为
JFrame frame = new JFrame("Chart");
frame.getContentPane().add(new ChartPanel(chart), BorderLayout.WEST);
frame.getContentPane().add(new ChartPanel(chart), BorderLayout.EAST);
frame.pack();
frame.setVisible(true);
Run Code Online (Sandbox Code Playgroud)
它不是生产代码.这只是ChartPanel在框架上显示两个的例子.
| 归档时间: |
|
| 查看次数: |
4629 次 |
| 最近记录: |