java如何把(打包)JPanel和图表放在JPanel里面,哪个放在JFrame里面?
我有一个方法,它使用JFreeChart和ChartActionListener返回JPanel。
在我的测试程序中,它工作得很好,我只需编写setContentPane(createContent());
,程序将其显示为全尺寸JPanel
当我在一个特殊的地方用JPanel创建主框架时(我是通过NetBeans swing构造函数来实现的),我的JPanel无法显示内容,它只是一个空的JPanel
我试着把它说成JPanel pan = createContent();
jPanel1.add(pan);
=不起作用
我还试着写:jPanel1 = createContent();
:它不起作用
只有当我在……之后写同样的东西时,它才起作用:initComponents();CrossHair cross = new CrossHair();setContentPane(cross.createContent());
因此,它显示内容,但我的程序的其他部分变得无法访问。。以下是createContent的方法:
private JPanel createContent() {
JFreeChart chart = createChart(createDataset());
chartPanel = new ChartPanel(chart);
chartPanel.addChartMouseListener(new ChartMouseListener() {
@Override
public void chartMouseClicked(ChartMouseEvent event) {
//---- to not make that code big
}
@Override
public void chartMouseMoved(ChartMouseEvent event) {
//---to not make that code big
}
});
CrosshairOverlay crosshairOverlay = new CrosshairOverlay();
xCrosshair = new Crosshair(Double.NaN, Color.RED, new BasicStroke(0f));
xCrosshair.setLabelVisible(true);
yCrosshair = new Crosshair(Double.NaN, Color.GRAY, new BasicStroke(0f));
yCrosshair.setLabelVisible(true);
crosshairOverlay.addDomainCrosshair(xCrosshair);
crosshairOverlay.addRangeCrosshair(yCrosshair);
chartPanel.addOverlay(crosshairOverlay);
return chartPanel;}
谢谢你的建议,任何例子都会有帮助
# 1 楼答案
我没有看到
ChartPanel
和jPanel
之间的区别我通过使用