gpt4 book ai didi

java - 如何将带有图表的 JPanel 放入 JFrame 中的 JPanel 中?

转载 作者:行者123 更新时间:2023-12-01 16:40:34 25 4
gpt4 key购买 nike

我有方法,它返回带有 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;}

感谢您的建议,任何示例都可能有所帮助

最佳答案

我没有看到 ChartPaneljPanel 之间的区别。

我通过使用解决了这个问题

jPanel1.add(cross.createContent(), BorderLayout.CENTER);

关于java - 如何将带有图表的 JPanel 放入 JFrame 中的 JPanel 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61868598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com