如何从不同的地方调用 ActionPerformed 方法 class

How to call ActionPerformed method from different class

我正在尝试从与我希望从中调用它的包位于同一包下的文件中调用 actionperformed 方法。我有两个 类、EditSeriesPaint 和 MyDataVisualization。我想从 MyDataVisualization 调用 EditSeriesPaint。这是我试过的:

EditSeriesPaint Class:

public class EditSeriesPaint extends MyDataVisualization {
        
        public void editColorActionPerformed(java.awt.event.ActionEvent evt) {

        Color newColor = JColorChooser.showDialog(null, "Choose a color", Color.RED);
        CategoryPlot plot = jchart.getCategoryPlot();
        plot.getRenderer().setSeriesPaint(0, newColor);
        
    }
    
}

MyDataVisualization Class:

editColor.addActionListener(new java.awt.event.ActionListener() {
    @Override
    public void actionPerformed(java.awt.event.ActionEvent evt) {
        EditSeriesPaint esp = new EditSeriesPaint();
        esp.editColorActionPerformed(evt);
    }
});

但是,当我将方法添加到 esp 并去使用颜色选择器时,由于 jchart 为空,它出错了。它是否没有从 MyDataVisualization 获取 jchart 值?如果是,我该如何解决?

我无法从这两个片段中真正看出 jchart 在 editColorActionPerformed 调用之前是如何使用的,但如果我不得不猜测,我会说 jcahrt 属性 尚未在MyDataVisualization 的构造函数(或 EditSeriesPaint 的构造函数,如果 jchart 已使用任何访问修饰符声明但私有)或 jchart 已在构造函数内调用的某些方法中被重置。

如果这个答案对您没有帮助,也许您可​​以分享 MyDataVisualization 和 EditSeriesPaint 的构造函数。