Myframe не является абстрактным и не переопределяет абстрактный метод - PullRequest
0 голосов
/ 11 июня 2019

Я новичок в программировании на 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");
        }
    }
}

1 Ответ

1 голос
/ 11 июня 2019

Это просто потому, что вы неправильно реализуете интерфейс 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, чтобы не забыть, что метод реализует интерфейс.

...