그래서 나는 기본적인 자바 GUI 계산기를위한 튜토리얼을 따라왔다. 어떤 이유로 든 Calculate 버튼을 클릭하면 콘솔에 많은 오류가 표시됩니다. 이 문제를 어떻게 해결할 수 있습니까?단추 핸들러가 작동하지 않습니다. 기본 자바 사각형 계산기
코드 :
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class RectangleProgram extends JFrame {
private static final int WIDTH = 400;
private static final int HEIGHT = 300;
private JLabel lengthL, widthL, areaL;
private JTextField lengthTF, widthTF, areaTF;
private JButton calculateB, exitB;
//Button handlers
private CalculateButtonHandler cbHandler;
private ExitButtonHandler ebHandler;
public RectangleProgram(){
lengthL = new JLabel("Enter the length: ", SwingConstants.RIGHT);
widthL = new JLabel("Enter the width: ", SwingConstants.RIGHT);
areaL = new JLabel("Area: ", SwingConstants.RIGHT);
lengthTF = new JTextField(10);
widthTF = new JTextField(10);
areaTF = new JTextField(10);
//New buttons
calculateB = new JButton("Calculate");
cbHandler = new CalculateButtonHandler();
calculateB.addActionListener(cbHandler);
exitB = new JButton("Exit");
ebHandler = new ExitButtonHandler();
exitB.addActionListener(ebHandler);
setTitle("Sample Title: Area of a rectangle");
Container pane = getContentPane();
pane.setLayout(new GridLayout(4, 2));
//Adding wings and things... well just things... no wings :(
pane.add(lengthL);
pane.add(lengthTF);
pane.add(widthL);
pane.add(widthTF);
pane.add(areaL);
pane.add(areaTF);
pane.add(calculateB);
pane.add(exitB);
setSize(WIDTH, HEIGHT);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
private class CalculateButtonHandler implements ActionListener{
public void actionPerformed(Action e){
double width, length, area;
length = Double.parseDouble(lengthTF.getText());
width = Double.parseDouble(widthTF.getText());
area = length * width;
areaTF.setText("" + area);
}
}
public class ExitButtonHandler implements ActionListener{
public void actionPerformed(Action e){
System.exit(0);
}
}
public static void main(String[] args){
RectangleProgram rectObj = new RectangleProgram();
}
}
오류 : 당신의 actionPerformed 방법에서
Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation >problem: The type RectangleProgram.CalculateButtonHandler must implement the >inherited abstract method ActionListener.actionPerformed(ActionEvent)
at >RectangleProgram$CalculateButtonHandler.actionPerformed(RectangleProgram.java:5>9) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at >java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(U>nknown Source) at >java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(U>nknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at >java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(U>nknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
코드 및 오류를 여기에 * 게시하십시오 *. – Li357
actionPerformed에 @Override의 주석을 추가하고 추상 메소드 – Li357
@AndrewL과 동일한 서명 및 매개 변수를 사용하는지 확인하십시오. Override를 추가했는데 프로그램에 아무 것도하지 않았습니다. – lmckenz