Java 调试我的按钮

Java 调试我的按钮,java,actionevent,Java,Actionevent,这是我的JPanels课程,我正在编写一个小程序。程序将正确启动并显示我的GUI。问题是出于某种原因,我的actionEvent没有在单击时触发 我在actionPerformed中输入了一个println,看看它是否真的启动了事件,但发现它不是。你们中有谁能帮我找出哪里出了问题吗 这是正在讨论的课程 package MetaMarket.GUI; import javax.swing.*; import javax.swing.border.TitledBorder; import java

这是我的JPanels课程,我正在编写一个小程序。程序将正确启动并显示我的GUI。问题是出于某种原因,我的actionEvent没有在单击时触发

我在actionPerformed中输入了一个println,看看它是否真的启动了事件,但发现它不是。你们中有谁能帮我找出哪里出了问题吗

这是正在讨论的课程

package MetaMarket.GUI;

import javax.swing.*;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.text.NumberFormatter;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormat;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import static MetaMarket.GUI.Fields.*;


public class UserInput {

private final JPanel userInput;
private final JPanel displayInput;

public UserInput(){

    //set up panel
    this.userInput = new JPanel();
    userInput.setLayout(null);
    userInput.setBounds(16,16,300,500);
    userInput.setBorder(new TitledBorder("Shift Report"));


    userInput.add(Labels.getUserJLabel());
    //set up select user combo box
    userInput.add(getUserSelection());
    // set up callsReceivedJLabel
    userInput.add(Labels.getCallsReceivedJLabel());
    // set up callsReceivedJTextField
    userInput.add(Fields.getCallsReceivedJTextField());
    // set up ticketsOpenedJLabel
    userInput.add(Labels.getTicketsOpenedJLabel());
    // set up ticketsOpenedJTextField
    userInput.add(getTicketsOpenedJTextField());
    // set up ticketsClosedJLabel
    userInput.add(Labels.getTicketsClosedJLabel());
    // set up ticketsClosedJTextField
    userInput.add(getTicketsClosedJTextField());
    // set up vpnRequestJLabel
    userInput.add(Labels.getVpnRequestsJLabel());
    // set up vpnRequestJTextField
    userInput.add(getVpnRequestsJTextField());
    // set up notesJLabel
    userInput.add(Labels.getNotesJLabel());
    // set up notesJTextArea
    userInput.add(Fields.getNotesJTextArea());

    Object[] row = new Object[8];
    JTable table = new JTable();
    Object[] columns = {"Date", "Representative","Calls","Tickets Opened", "Tickets Closed", "VPN Requests", "FCR"
            ,"Comments"};
    JTableHeader header = table.getTableHeader();
    header.setBackground(Color.PINK);
    DefaultTableModel model = new DefaultTableModel();
    model.setColumnIdentifiers(columns);
    table.setModel(model);



    Buttons.createLogButton().addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {

            System.out.println("action is beginning");

            DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
            Date date = new Date();

            int openInt = Integer.parseInt(getTicketsOpenedJTextField().getText());
            int closeInt = Integer.parseInt(getTicketsClosedJTextField().getText());
            int vpn = Integer.parseInt(getVpnRequestsJTextField().getText());

            double trueClose = closeInt - vpn;
            double trueOpen = openInt - vpn;
            double fcr =   trueClose/trueOpen;

            NumberFormat defaultFormat = NumberFormat.getPercentInstance();
            defaultFormat.setMinimumFractionDigits(2);

            row[0] = date;
            row[1] = getUserSelection().getSelectedItem();
            row[2] = getCallsReceivedJTextField().getText();
            row[3] = getTicketsOpenedJTextField().getText();
            row[4] = getTicketsClosedJTextField().getText();
            row[5] = getVpnRequestsJTextField().getText();
            row[6] = defaultFormat.format(fcr);
            row[7] = getNotesJTextArea().getText();

            model.addRow(row);

         }
    });



    userInput.add(Buttons.createLogButton());

    userInput.add(Buttons.createUpdateButton());

    userInput.add(Labels.getCreditsJLabel());

    //--------------------------------------//

    this.displayInput = new JPanel();
    displayInput.setBounds(330,16,825,700);
    displayInput.setBorder(new TitledBorder("Stuff and things"));
    displayInput.setLayout(new BorderLayout());

    displayInput.setLayout(new BorderLayout());
    displayInput.add(table.getTableHeader(), BorderLayout.PAGE_START);
    displayInput.add(table, BorderLayout.CENTER);

    JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
            JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    pane.setSize(825,700);

    displayInput.add(pane);


}

public JPanel getUserInput() {
    return this.userInput;
}

public JPanel getDisplayInput(){
    return this.displayInput;
}
}

提前谢谢!如果您需要查看其他课程或需要更多信息,请告诉我!几天来,我一直在努力解决这个问题,现在真的需要另一双眼睛来检查它。

您创建了两次日志按钮。尝试更改您的代码:

Button btnLog = Buttons.createLogButton();
btnLog.addActionListener(new ActionListener() {
  ...
}
userInput.add(btnLog);

就这样!非常感谢。真不敢相信我错过了!