ChartPanel 未在 GUI 中注册为组件

我有以下输出。


Recursive call for org.jfree.chart.ChartPanel[chartpanelBoa

Component count 0 for org.jfree.chart.ChartPanel[chartpanelBoa

我运行以获得此输出的代码是


public void enableEverything(Container c){

Component [] p = c.getComponents();

System.out.println("Component count " + c.getComponentCount() + " for " +   

                                c.toString().substring(0,40)  );

for(Component pp : p){

pp.setEnabled(true);

if(pp instanceof Container){

System.out.println("Recursive call for " + pp.toString().substring(0,40));

enableEverything((Container) pp);

}

else System.out.println("No recursive call");

}




}

ChartPanel 可以在我的 JPanel 中看到,但它不会计算图表面板。我期待的输出


org.jfree.chart.ChartPanel[chartpanelBoa 的组件计数 1


计算组件的幕后因素是什么?


明月笑刀无情
浏览 176回答 1
1回答

慕的地6264312

如源代码所示org.jfree.chart.ChartPanel, aChartPanel 是 a JPanel,但它不包含 的嵌套实例Component。导入了一些Swing 组件来处理上下文菜单、工具提示等,但其JFreeChart本身是纯Java2D的。看起来您想在禁用图表时更改图表的视觉表示。您仍然可以调用自身setEnabled()以ChartPanel利用JPanelUI 委托。您还可以根据需要修改图表的内部;此示例setBackgroundPaint()使用或使背景变暗setBackgroundImageAlpha()。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java