2014-10-01 6 views
-2

나는 추상적이지 않고 계속해서 오류를 덮어 쓰지 않습니다. 나도 그 실수를 발견 할 수 없다. 나는 어디로 잘못 갔는가? 나는 중괄호가 올바른 위치에 있었는지 확인했다. 이것은 정확한 오류 메시지는 "addNumbers 추상적하지 않고 javadoc의 누락 된 ActionListener자바가 추상화되지 않고 오류를 덮어 쓰지 않습니다.

에 추상 메소드의 actionPerformed (ActionEvent의)를 대체하지 않습니다."오류 메시지가 명확 상태로

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

public class addNumbers extends JFrame implements ActionListener 
{ 
    FlowLayout flow = new FlowLayout(); 

    JLabel num1 = new JLabel("First Number: "); 
    JTextField number1 = new JTextField(10); 

    JLabel num2 = new JLabel("Second Number: "); 
    JTextField number2 = new JTextField(10); 

    JButton sumbutton = new JButton("Sum Numbers"); 
    JButton exitbutton = new JButton("Exit"); 
    JButton reset = new JButton("Reset"); 

    JLabel result = new JLabel("The result is: "); 
    JLabel add = new JLabel(""); 


public addNumbers(){ 

    Container con = getContentPane(); 
    con.setLayout(flow); 
    con.add(num1); 
    con.add(number1); 
    con.add(num2); 
    con.add(number2); 
    con.add(sumbutton); 
    con.add(exitbutton); 
    con.add(reset); 
    con.add(result); 

    sumbutton.addActionListener(this); 
    exitbutton.addActionListener(this); 
    reset.addActionListener(this); 

}//end addNumbers containers 

public static void main(String[] args){ 
    addNumbers nframe = new addNumbers(); 
    nframe.setSize(300,300); 
    nframe.setVisible(true); 
    nframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    nframe.setTitle("Calculations"); 

}//end main 

public void getAction(ActionEvent e){ 
    Object source = e.getSource(); 

    if(source == sumbutton){ 
     String num1 = number1.getText(); 
     String num2 = number2.getText(); 

     double n1 = Double.parseDouble(num1); 
     double n2 = Double.parseDouble(num2); 
     double total = n1+n2; 
     String result = "" + total; 
     //convert back to spring to output 
     add.setText(result);;  
    } 

    else if(source == reset){ 
     number1.setText(""); 
     number2.setText(""); 
     add.setText(""); 
    } 
    else{ 
     System.exit(0); 
    } 

}//end of getAction 


}//end addNumbers 
+0

가능한 복제본은 [ActionListener]가 추상이고 추상 메서드 인 actionPerformed를 무시하지 않습니다. 바로 그 메서드가 포함되어 있음에도 불구하고 (http://stackoverflow.com/questions/18813580/actionlistener-is-abstract-and-does-not- override-abstract-method-actionperformed) –

+0

이 코드를 [MCVE] (http://stackoverflow.com/help/mcve)로 줄일 수 있습니까? – skrrgwasme

답변

2

, 클래스는 구현하지 않습니다 메소드 actionPerformedActionListener을 구현하는 클래스에 필요합니다.

인터페이스가 필요하지 않은 경우 인터페이스를 제거하거나 인터페이스를 사용하려는 경우 추가하십시오.

오류 메시지의 "추상적이지 않음"부분은 abstract class 인 경우 클래스가 모든 인터페이스 메서드를 구현하지 않아도된다는 사실을 나타내며 그 경우 클래스를 상속하는 클래스가 필요합니다 대신 구현할 수 있습니다.

+0

actionPerformed가 구현되어 작동했습니다. 감사! – luiscovar

관련 문제