1

このコード (以下) をコンパイルしようとしていますが、次のようなエラー メッセージが表示され続けます。

この行に複数のマーカー

  • qqは、継承された抽象メソッドを実装する必要があります ActionListener.actionPerformed(ActionEvent)
  • シリアライズ可能なクラスは型のフィールドをqq宣言していませんstatic final serialVersionUIDlong

私はまだ Java にまったく慣れていないので、何が起こっているのかよくわかりません。この不幸な状況をどのように修正すればよいかについて、何らかの洞察をお持ちでしょうか?

public class qq extends JFrame implements ActionListener, ItemListener {

    // many fields here

    public qq() {
        // components initializing
        // other code for window closing etc.
    }

    // actionPerformed is ActionListener interface method
    // which responds to action event of selecting
    // combo box or radio button
    public void ationPerformed(ActionEvent e){
        if (e.getSource() instanceof JComboBox){
            System.out.println("Customer shops: " + freqButton.getSelectedItem());
        }
        else if (e.getSource() instanceof JRadioButton){
            if (age1.isSelected() ){
                System.out.println("Customer is under 20");
            }
            else if (age2.isSelected() ){
                System.out.println("Customer is 20 - 39");
            }
            else if (age3.isSelected() ){
                System.out.println("Customer is 39 - 59");
            }
            else if (age4.isSelected() ){
                System.out.println("Customer is over 60");
            }
        }
    }

    // itemStateChanged is ItemListener interface method
    // which responds to item event of clicking checkbox
    public void itemStateChanged (ItemEvent e){
        if (e.getSource() instanceof JCheckBox){
            JCheckBox buttonLabel = (JCheckBox)
                    e.getItemSelectable();
            if (buttonLabel == tradeButton){
                if (e.getStateChange() == e.SELECTED) {
                    System.out.println("Customer is trade");
                }
                else
                {
                    System.out.println("Customer is not trade");
                }
            }
        }
    }

    public static void main(String args[]) {
        qq cd = new qq();
        // other code setting up the window
    }

}
4

3 に答える 3

2

タイプミスを修正しpublic void ationPerformed(ActionEvent e)、欠落している「c」を「アクション」に追加します。これにより、エラー メッセージが処理されます。

serialVersionUID に関する警告は無視してかまいません。後でシリアライゼーションについて学習するときに戻ってきてください。

于 2013-09-10T09:28:07.960 に答える
2

メソッドを実装する必要がありますactionPerformed。このように実装したようationPerformedです。そのスペルを修正する必要があります。インターフェースを正しく実装していないため、クラスを ActionListener として使用できません。

シリアライズ可能の問題に関しては、これは、JFrame が serialVersionUID を必要とする Serializable インターフェースを実装しているという事実に関係しています。コンパイルしなくてもコンパイルできますが、IDE は文句を言います。【詳しくはこちら

補足として、通常、JFrame を拡張するのではなく、クラスでインスタンスを使用します。

于 2013-09-10T09:24:12.740 に答える
2

メソッド名ationPerformedにタイプミスがあります。actionPerformed にする必要があります

于 2013-09-10T09:24:29.627 に答える