Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Myframe不是抽象的,并且不重写抽象方法_Java_Itemlistener - Fatal编程技术网

Java Myframe不是抽象的,并且不重写抽象方法

Java Myframe不是抽象的,并且不重写抽象方法,java,itemlistener,Java,Itemlistener,我是Java编程新手。我只是在做一个程序来选择性别使用复选框。但是当我运行程序时,我得到一个错误 Myframe is not abstract and does not override abstract method itemStateChanged(ItemEvent) in ItemListener 代码如下 import java.awt.event.*; class Myframe extends Frame implements ItemListener{ Checkbo

我是Java编程新手。我只是在做一个程序来选择性别使用复选框。但是当我运行程序时,我得到一个错误

Myframe is not abstract and does not override abstract method itemStateChanged(ItemEvent) in ItemListener
代码如下

import java.awt.event.*;
class Myframe extends Frame implements ItemListener{
    CheckboxGroup cbg;
    Checkbox chkmale,chkfemale;
    Label lblres;

    void init(){
        cbg = new CheckboxGroup();
        chkmale = new Checkbox();
        chkfemale = new Checkbox();
        lblres = new Label();

        add(chkmale); add(chkfemale); add(lblres);

        this.addWindowListener(new MyListner());
        chkmale.addItemListener(this);
        chkfemale.addItemListener(this);
    }
    public void itemstateChanged(java.awt.event.ItemEvent ie){
        if(chkmale.getState() == true){
            lblres.setText("Male");
        }
        else{
            lblres.setText("Female");
        }
    }
}


这仅仅是因为您错误地实现了
java.awt.event.ItemListener
接口。 它应该是
itemStateChanged
,而不是
itemStateChanged

import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

class Myframe extends Frame implements ItemListener {
    ...

    @Override
    public void itemStateChanged(ItemEvent e) {
        // Your code here.
    }
}

不要忘记添加
@Override
,这样您就不会忘记方法正在实现接口。

因此,要么将该类抽象化,要么实现该方法。如果你真的是Java新手,那么从学习基本概念开始,不要跳入框架——在ItemListener中创建一个抽象方法,因为你实现了这个类。\@Francisaskquestion这个答案毫无意义。ItemListener接口中已经有一个抽象方法,这就是问题所在,因为我误解了这个问题,认为它是一个自定义的抽象类类型:
itemstateChanged!=itemStateChanged