首页 > 解决方案 > 当没有真正涉及数学时,“线程“AWT-EventQueue-0”java.lang.ArithmeticException:/零”错误?

问题描述

到目前为止,这是我的代码 - 我正在尝试使用 WidgetViewer 来获取某个事件的详细信息并将其打印在 JTextArea 上。但是,我在这样做时遇到了麻烦 - 代码本身没有错误,但是当我运行它时,我得到无数行异常,最上面一行是:线程“AWT-EventQueue-0”java.lang中的异常.ArithmeticException: / 为零。

我在另一个文件中有一个 Event 类,仅供参考。那里没有错误。

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

public class Interface {

    public static void main(String[] args) {

        WidgetViewer wv = new WidgetViewer();
        
        JLabel eventName = new JLabel("Event Name");
        wv.add(eventName, 10, 30, 300, 20);
        
        JTextField name = new JTextField();
        wv.add(name, 10, 50, 300, 20);
        //Similar for the rest of JTextFields and JLabels
        
        JButton create = new JButton("Create an Event");
        wv.add(create, 10, 320, 300, 20);
        
        JTextArea text = new JTextArea("");
        wv.add(text, 10, 460, 900, 20);
        
        create.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e){
                Event event1 = new Event();
                String eventName = name.getText();
                String eventVenue = venue.getText();
                int venueCapacity = Integer.parseInt(capacity.getText());
                String eventDate = date.getText();
                int ticketsSold = Integer.parseInt(sold.getText());
                int ticketPrice = Integer.parseInt(price.getText());
                int overhead = Integer.parseInt(costs.getText());
                
                text.setText("Event " + event1.getEventName() + ", Venue: " + event1.getEventVenue() + ", Date: " + 
                event1.getDate() + ", Tickets Sold: " + event1.getTicketsSold() + ", Ticket Price: " + 
                event1.getTicketPrice() + ", Overhead: " + event1.getOverhead() + ", Venue Capacity: " + event1.getVenueCapacity() + ", Profit: " + event1.getProfit() +
                        "Break Even Point = " + event1.getBreakEvenPoint());
                
            }
        });    
        
    }

}

例外情况是:

Exception in thread "AWT-EventQueue-0" java.lang.ArithmeticException: / by zero
    at Event.getBreakEvenPoint(Event.java:55)
    at Interface$1.actionPerformed(Interface.java:73)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6539)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6304)
    at java.awt.Container.processEvent(Container.java:2239)
    at java.awt.Component.dispatchEventImpl(Component.java:4889)
    at java.awt.Container.dispatchEventImpl(Container.java:2297)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
    at java.awt.Container.dispatchEventImpl(Container.java:2283)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
    at java.awt.EventQueue$4.run(EventQueue.java:733)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

标签: javaeventsevent-listener

解决方案


推荐阅读