如何从不同的地方调用 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 的构造函数。
我正在尝试从与我希望从中调用它的包位于同一包下的文件中调用 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 的构造函数。