我有以下输出。
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");
}
}
图表面板可以在我的JPanel中看到,但它不会计算图表面板。我期待的输出
org.jfree.chat.ChartPanel的组件计数1[chartpanelBoa
计算组件的幕后是什么?
如org.jfree.chart.ChartPanel
的源代码所示,ChartPanel
是JPanel
,但它不包含Component
的嵌套实例。导入了一些Swing组件来处理上下文菜单、工具提示等,但附带的JFreeChart
本身是纯Java2D。
当图表被禁用时,您似乎想要更改它的视觉表示。您仍然可以在ChartPanel
本身上调用setEnabled()
来利用JPanel
UI委托。您也可以根据需要修改图表的内部;该示例使用CCD_ 9或CCD_。