java - ChartPanel 未注册为 GUI 中的组件

标签 java swing components jfreechart

我有以下输出。

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]

幕后是什么对组件进行计数?

最佳答案

org.jfree.chart.ChartPanel 的源代码所示,ChartPanel 是一个 JPanel,但它不包含 Component 的嵌套实例。一个handful导入 Swing 组件来处理 context menu 、工具提示等,但随附的 JFreeChart本身就是纯净的Java2D .

您似乎想在禁用图表时更改图表的视觉表示形式。您仍然可以调用 setEnabled()ChartPanel 本身上利用 JPanel UI 委托(delegate)。您还可以根据需要修改图表的内部;这个example使用 setBackgroundPaint()setBackgroundImageAlpha() 调暗背景。

关于java - ChartPanel 未注册为 GUI 中的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53712224/

相关文章:

java - 如何在 GWT Celltable 中使用可编辑的 NumberCell?

java - 轴突框架: Aggregate identifier must be non-null after applying an event

javascript - 组件 q-table 中单元格的 Quasar 条件样式

java - JPA,不想要 insertable=false,updatable=false,解决方法?

Java:初学者帮助获取变量

java - 设置 JFrame 位置的最佳实践

java - JInternalFrame 自定义屏幕键盘

java - 在 JComboBox 事件中的 JFrame 中显示图像

angular - 单击按钮并通过 component - angular 增加数字

angularjs - 如何使用双向数据绑定(bind)将数据从子组件传递到父组件?