我先定义了一个radarpanel类,继承自Jpanel,然后在radarpanel中自定义一个方法 setrange()
public class radarPanel extends JPanel{
private int range = 6;
public void setRange(String option) {
range = 12;
System.out.println(range);
................//省略
}
}
主类中调用定义的方法,结果显示错误
radarpanel = new radarPanel();
radarpanel.addMouseWheelListener(new MouseWheelListener() {
public void mouseWheelMoved(MouseWheelEvent e) {
if (e.getWheelRotation() > 0) { //减小量程
radarpanel.setRange("add");
}
if(e.getWheelRotation() < 0){ //增大量程
radarpanel.setRange("reduce");
}
System.out.println(radarpanel.getRange());
}
});
错误提示
请指教,不知道是什么问题,谢谢
radarpanel需要类型转化,第三种修改。。。
没有这个方法吧,,,,
你 把自定义的类-----类名改成大写字母开头,,radarPanel ---->RadarPanel
然后你在 报错的那行,radarPanel 确定下是不是 RadarPanel类型的
类名是小写,radarPanel = new radarpanel();
radarPanel按理说是可以调用在radarPanel类里面定义的方法setRange()的,但是编译器区分大小写,对radarPanel.setRange()辨别有问题,所以让你强转类型
((radarPanel)radarPanel).setRange()
以后---类名一定要大写开头
找到错误了,我真是太粗心了,定义的时候是JPanel
private JPanel radrpanel; //这里错了(´pωq`)
因为RadarPanel是JPanel的子类所以没有报错,让然可以正常调用
改正后一起正常,学习的过程曲曲折折
###感谢各位计算机大神的帮助,在这里不胜感激
找到问题的原因了,因为写了一个jpanel的子类,所以在后期修改的时候,忘记修改定义时候的修改类型了,应该类型是radarpanel,不好意思